From 2af4a565fbd4882930219cd0f9890d595751b353 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Tue, 20 Jun 2017 14:12:45 +0200 Subject: [PATCH 01/31] Rename magentoerpconnect to connector_magento --- connector_magento/AUTHORS | 23 + connector_magento/CHANGES.rst | 137 + connector_magento/README.rst | 133 + connector_magento/__init__.py | 24 + connector_magento/__manifest__.py | 44 + connector_magento/account_payment_mode.py | 20 + connector_magento/binding.py | 72 + connector_magento/components/__init__.py | 9 + .../components/backend_adapter.py | 272 + connector_magento/components/binder.py | 33 + connector_magento/components/core.py | 12 + connector_magento/components/deleter.py | 21 + connector_magento/components/exporter.py | 370 + connector_magento/components/importer.py | 326 + connector_magento/components/mapper.py | 30 + connector_magento/consumer.py | 44 + .../data/connector_magento_data.xml | 122 + connector_magento/delivery.py | 57 + connector_magento/doc/Makefile | 153 + .../LogicSupply_Orange_260x80_transparent.png | Bin 0 -> 2451 bytes .../doc/_static/img/akretion_logo.png | Bin 0 -> 13203 bytes .../_static/img/c2c_square_baseline_192.jpg | Bin 0 -> 24535 bytes .../doc/_static/img/logo-debonix.jpg | Bin 0 -> 29079 bytes .../doc/_static/img/sync-workflow.png | Bin 0 -> 83107 bytes connector_magento/doc/_templates/layout.html | 15 + connector_magento/doc/_themes/.gitignore | 3 + connector_magento/doc/api/api_backend.rst | 7 + .../doc/api/api_backend_adapter.rst | 7 + connector_magento/doc/api/api_binder.rst | 7 + connector_magento/doc/api/api_connector.rst | 7 + connector_magento/doc/api/api_consumer.rst | 7 + connector_magento/doc/api/api_delivery.rst | 7 + connector_magento/doc/api/api_exception.rst | 9 + connector_magento/doc/api/api_invoice.rst | 7 + .../doc/api/api_magento_model.rst | 7 + connector_magento/doc/api/api_partner.rst | 7 + .../doc/api/api_partner_category.rst | 7 + connector_magento/doc/api/api_product.rst | 7 + .../doc/api/api_product_category.rst | 7 + connector_magento/doc/api/api_sale.rst | 7 + .../doc/api/api_stock_picking.rst | 7 + .../doc/api/api_stock_tracking.rst | 7 + .../doc/api/api_synchronizer.rst | 26 + connector_magento/doc/conf.py | 352 + connector_magento/doc/core | Bin 0 -> 17321984 bytes .../doc/guides/connector_checkpoint.rst | 20 + .../doc/guides/installation_guide.rst | 163 + .../doc/guides/key_questions.rst | 269 + .../doc/guides/monitor_resolve_jobs.rst | 83 + .../doc/guides/tutorial_customize.rst | 393 + .../doc/guides/tutorial_development.rst | 401 + .../howto/configure_automatic_workflows.rst | 12 + .../doc/howto/configure_emails.rst | 14 + .../doc/howto/configure_exception_rules.rst | 12 + .../doc/howto/configure_payment_methods.rst | 14 + .../doc/howto/configure_pricing.rst | 41 + .../doc/howto/configure_schedulers.rst | 27 + .../doc/howto/configure_shipping_methods.rst | 36 + .../doc/howto/configure_taxes.rst | 20 + .../doc/howto/configure_translations.rst | 15 + .../doc/howto/configure_warehouse.rst | 19 + connector_magento/doc/howto/faq.rst | 17 + .../doc/howto/modify_an_order.rst | 45 + connector_magento/doc/index.rst | 191 + connector_magento/doc/make.bat | 190 + connector_magento/doc/project/changes.rst | 8 + connector_magento/doc/project/contribute.rst | 267 + .../doc/project/contributors.rst | 61 + connector_magento/doc/project/roadmap.rst | 61 + connector_magento/exception.py | 10 + connector_magento/i18n/connector_magento.pot | 1151 + connector_magento/i18n/de.po | 1282 + connector_magento/i18n/es.po | 1282 + connector_magento/i18n/fr.po | 1282 + connector_magento/i18n/it.po | 1283 + connector_magento/i18n/nl.po | 1282 + connector_magento/i18n/pt_BR.po | 1282 + connector_magento/i18n/sl.po | 1281 + .../images/connector_magento.png | Bin 0 -> 72527 bytes connector_magento/images/invoice_binding.png | Bin 0 -> 49099 bytes connector_magento/images/jobs.png | Bin 0 -> 194835 bytes connector_magento/images/magento-hover.png | Bin 0 -> 10045 bytes connector_magento/images/magento.png | Bin 0 -> 6146 bytes connector_magento/images/magento_backend.png | Bin 0 -> 125304 bytes connector_magento/images/product_binding.png | Bin 0 -> 86192 bytes connector_magento/invoice.py | 249 + connector_magento/magento_model.py | 715 + .../migrations/7.0.2.5.0/post-migration.py | 39 + .../migrations/8.0.3.0.0/pre-migration.py | 48 + connector_magento/models/__init__.py | 2 + connector_magento/models/queue_job.py | 36 + connector_magento/partner.py | 635 + connector_magento/partner_category.py | 92 + connector_magento/product.py | 623 + connector_magento/product_category.py | 241 + connector_magento/sale.py | 1019 + .../security/ir.model.access.csv | 39 + connector_magento/setting.py | 20 + connector_magento/static/description/icon.png | Bin 0 -> 10045 bytes connector_magento/stock_picking.py | 255 + connector_magento/stock_tracking.py | 85 + connector_magento/tests/__init__.py | 30 + connector_magento/tests/common.py | 230 + connector_magento/tests/data_address_book.py | 423 + connector_magento/tests/data_base.py | 26598 ++++++++++++++++ connector_magento/tests/data_guest_order.py | 402 + connector_magento/tests/data_product.py | 113 + connector_magento/tests/test_address_book.py | 171 + .../tests/test_export_invoice.py | 231 + .../tests/test_export_picking.py | 226 + .../tests/test_import_partner_category.py | 61 + .../tests/test_import_product_image.py | 139 + .../tests/test_related_action.py | 88 + connector_magento/tests/test_sale_order.py | 287 + .../tests/test_synchronization.py | 325 + .../tests/test_update_product_stock.py | 201 + .../views/account_payment_mode_view.xml | 19 + .../views/connector_magento_menu.xml | 33 + connector_magento/views/delivery_view.xml | 17 + connector_magento/views/invoice_view.xml | 46 + .../views/magento_model_view.xml | 381 + connector_magento/views/partner_view.xml | 114 + .../views/product_category_view.xml | 47 + connector_magento/views/product_view.xml | 64 + connector_magento/views/sale_view.xml | 5 + connector_magento/views/setting_view.xml | 36 + connector_magento/views/stock_view.xml | 48 + 127 files changed, 49359 insertions(+) create mode 100644 connector_magento/AUTHORS create mode 100644 connector_magento/CHANGES.rst create mode 100644 connector_magento/README.rst create mode 100644 connector_magento/__init__.py create mode 100644 connector_magento/__manifest__.py create mode 100644 connector_magento/account_payment_mode.py create mode 100644 connector_magento/binding.py create mode 100644 connector_magento/components/__init__.py create mode 100644 connector_magento/components/backend_adapter.py create mode 100644 connector_magento/components/binder.py create mode 100644 connector_magento/components/core.py create mode 100644 connector_magento/components/deleter.py create mode 100644 connector_magento/components/exporter.py create mode 100644 connector_magento/components/importer.py create mode 100644 connector_magento/components/mapper.py create mode 100644 connector_magento/consumer.py create mode 100644 connector_magento/data/connector_magento_data.xml create mode 100644 connector_magento/delivery.py create mode 100644 connector_magento/doc/Makefile create mode 100644 connector_magento/doc/_static/img/LogicSupply_Orange_260x80_transparent.png create mode 100644 connector_magento/doc/_static/img/akretion_logo.png create mode 100644 connector_magento/doc/_static/img/c2c_square_baseline_192.jpg create mode 100644 connector_magento/doc/_static/img/logo-debonix.jpg create mode 100644 connector_magento/doc/_static/img/sync-workflow.png create mode 100644 connector_magento/doc/_templates/layout.html create mode 100644 connector_magento/doc/_themes/.gitignore create mode 100644 connector_magento/doc/api/api_backend.rst create mode 100644 connector_magento/doc/api/api_backend_adapter.rst create mode 100644 connector_magento/doc/api/api_binder.rst create mode 100644 connector_magento/doc/api/api_connector.rst create mode 100644 connector_magento/doc/api/api_consumer.rst create mode 100644 connector_magento/doc/api/api_delivery.rst create mode 100644 connector_magento/doc/api/api_exception.rst create mode 100644 connector_magento/doc/api/api_invoice.rst create mode 100644 connector_magento/doc/api/api_magento_model.rst create mode 100644 connector_magento/doc/api/api_partner.rst create mode 100644 connector_magento/doc/api/api_partner_category.rst create mode 100644 connector_magento/doc/api/api_product.rst create mode 100644 connector_magento/doc/api/api_product_category.rst create mode 100644 connector_magento/doc/api/api_sale.rst create mode 100644 connector_magento/doc/api/api_stock_picking.rst create mode 100644 connector_magento/doc/api/api_stock_tracking.rst create mode 100644 connector_magento/doc/api/api_synchronizer.rst create mode 100644 connector_magento/doc/conf.py create mode 100644 connector_magento/doc/core create mode 100644 connector_magento/doc/guides/connector_checkpoint.rst create mode 100644 connector_magento/doc/guides/installation_guide.rst create mode 100644 connector_magento/doc/guides/key_questions.rst create mode 100644 connector_magento/doc/guides/monitor_resolve_jobs.rst create mode 100644 connector_magento/doc/guides/tutorial_customize.rst create mode 100644 connector_magento/doc/guides/tutorial_development.rst create mode 100644 connector_magento/doc/howto/configure_automatic_workflows.rst create mode 100644 connector_magento/doc/howto/configure_emails.rst create mode 100644 connector_magento/doc/howto/configure_exception_rules.rst create mode 100644 connector_magento/doc/howto/configure_payment_methods.rst create mode 100644 connector_magento/doc/howto/configure_pricing.rst create mode 100644 connector_magento/doc/howto/configure_schedulers.rst create mode 100644 connector_magento/doc/howto/configure_shipping_methods.rst create mode 100644 connector_magento/doc/howto/configure_taxes.rst create mode 100644 connector_magento/doc/howto/configure_translations.rst create mode 100644 connector_magento/doc/howto/configure_warehouse.rst create mode 100644 connector_magento/doc/howto/faq.rst create mode 100644 connector_magento/doc/howto/modify_an_order.rst create mode 100644 connector_magento/doc/index.rst create mode 100644 connector_magento/doc/make.bat create mode 100644 connector_magento/doc/project/changes.rst create mode 100644 connector_magento/doc/project/contribute.rst create mode 100644 connector_magento/doc/project/contributors.rst create mode 100644 connector_magento/doc/project/roadmap.rst create mode 100644 connector_magento/exception.py create mode 100644 connector_magento/i18n/connector_magento.pot create mode 100644 connector_magento/i18n/de.po create mode 100644 connector_magento/i18n/es.po create mode 100644 connector_magento/i18n/fr.po create mode 100644 connector_magento/i18n/it.po create mode 100644 connector_magento/i18n/nl.po create mode 100644 connector_magento/i18n/pt_BR.po create mode 100644 connector_magento/i18n/sl.po create mode 100644 connector_magento/images/connector_magento.png create mode 100644 connector_magento/images/invoice_binding.png create mode 100644 connector_magento/images/jobs.png create mode 100644 connector_magento/images/magento-hover.png create mode 100644 connector_magento/images/magento.png create mode 100644 connector_magento/images/magento_backend.png create mode 100644 connector_magento/images/product_binding.png create mode 100644 connector_magento/invoice.py create mode 100644 connector_magento/magento_model.py create mode 100644 connector_magento/migrations/7.0.2.5.0/post-migration.py create mode 100644 connector_magento/migrations/8.0.3.0.0/pre-migration.py create mode 100644 connector_magento/models/__init__.py create mode 100644 connector_magento/models/queue_job.py create mode 100644 connector_magento/partner.py create mode 100644 connector_magento/partner_category.py create mode 100644 connector_magento/product.py create mode 100644 connector_magento/product_category.py create mode 100644 connector_magento/sale.py create mode 100644 connector_magento/security/ir.model.access.csv create mode 100644 connector_magento/setting.py create mode 100644 connector_magento/static/description/icon.png create mode 100644 connector_magento/stock_picking.py create mode 100644 connector_magento/stock_tracking.py create mode 100644 connector_magento/tests/__init__.py create mode 100644 connector_magento/tests/common.py create mode 100644 connector_magento/tests/data_address_book.py create mode 100644 connector_magento/tests/data_base.py create mode 100644 connector_magento/tests/data_guest_order.py create mode 100644 connector_magento/tests/data_product.py create mode 100644 connector_magento/tests/test_address_book.py create mode 100644 connector_magento/tests/test_export_invoice.py create mode 100644 connector_magento/tests/test_export_picking.py create mode 100644 connector_magento/tests/test_import_partner_category.py create mode 100644 connector_magento/tests/test_import_product_image.py create mode 100644 connector_magento/tests/test_related_action.py create mode 100644 connector_magento/tests/test_sale_order.py create mode 100644 connector_magento/tests/test_synchronization.py create mode 100644 connector_magento/tests/test_update_product_stock.py create mode 100644 connector_magento/views/account_payment_mode_view.xml create mode 100644 connector_magento/views/connector_magento_menu.xml create mode 100644 connector_magento/views/delivery_view.xml create mode 100644 connector_magento/views/invoice_view.xml create mode 100644 connector_magento/views/magento_model_view.xml create mode 100644 connector_magento/views/partner_view.xml create mode 100644 connector_magento/views/product_category_view.xml create mode 100644 connector_magento/views/product_view.xml create mode 100644 connector_magento/views/sale_view.xml create mode 100644 connector_magento/views/setting_view.xml create mode 100644 connector_magento/views/stock_view.xml diff --git a/connector_magento/AUTHORS b/connector_magento/AUTHORS new file mode 100644 index 000000000..566974d32 --- /dev/null +++ b/connector_magento/AUTHORS @@ -0,0 +1,23 @@ +Last update: Tue Jan 6 13:11:49 CET 2015 + +* Guewen Baconnier at Camptocamp +* Alexandre Fayolle at Camptocamp +* Joel Grand-Guillaume at Camptocamp +* Sebastien Beau at Akretion +* Benoit Guillot at Akretion +* Chafique Delli at Akretion +* David Beal at Akretion +* Brendan Clune at Logic Supply +* Allison Miller at Logic Supply +* Augustin Cisterne-Kaas at Elico Corp +* Alexis de Lattre at Akretion (tiny change) +* Olivier Distexhe at Akilon (tiny change) +* Romain Deheele at Camptocamp +* Thomas Rehn at initOS +* Katja Matthes at initOS +* Markus Schneider at initOS +* Jan-Philipp Fischer at greencoding +* Ondřej Kuzník at credativ +* Matthieu Dietrich at Camptocamp +* Florian da Costa at Akretion +* Alberto Garcia at Factor Libre diff --git a/connector_magento/CHANGES.rst b/connector_magento/CHANGES.rst new file mode 100644 index 000000000..b33a89333 --- /dev/null +++ b/connector_magento/CHANGES.rst @@ -0,0 +1,137 @@ +Changelog +--------- + +3.0.0 (2015-06-02) +~~~~~~~~~~~~~~~~~~ + +* Migrated on the new Odoo API and the new Connector API +* Extended the test coverage +* Show the failed calls in the logger with the ERROR level +* New Docker image for Magento, mentionned in the documentation +* Allow to choose a default sales team for sales orders on the storeviews +* Lot of improvements/cleaning of the code +* The binders can now return records (new ``browse`` argument) +* The Importer now pass the binding report instead of the binding_id + internally +* Remove sale.shop + +2.5.0 (2015-01-06) +~~~~~~~~~~~~~~~~~~ + +* The option for tax inclusion is now configurable by storeview #74 +* Add a backend adapter for the product categories #58 +* Add basic units to allow handling bundle products in submodules #13 +* Add mechanisms for the export of records (lock of bindings, helper for dependencies export) #33 +* 'New copy from quotation' rebinds the Magento order with the new copy #9 +* Better memory footprint and performance on update of stock quantity #11 +* Fix: Magento sometimes returns no invoice id #29 +* Fix: discount_amount with a None value #70 +* Fix: mapping for res.partner.title too broad (mix up "Herr and Herr Dr." #68 +* Fix: error when a binding have a ID "0" which happens with Magento #61 +* Fix: allow to copy a stock picking #60 +* Fix: compatibility with the fiscal position rules module #42 +* Fix: Prevent to create duplicate bindings on invoices #39 +* Fix: Remove trailing None on calls made to the Magento's API (PHP 5.4 compatibility) #28 +* Fix: avoid to send twice a tracking number #16 +* Fix: when a tracking's job is executed before the export of the picking, the tracking's job export the picking #16 +* Fix: replace nltk by Beautifulsoup #40 +* Fix: Add a 'to date' boundary to batch jobs #17 + +2.4.2 (2014-06-16) +~~~~~~~~~~~~~~~~~~ + +* Fix: AssertionError: Several classes found for with session , model name: magento.product.product. Found: set([, ]) + +2.4.1 (2014-06-10) +~~~~~~~~~~~~~~~~~~ + +* Fix: Binders should find records even if they are inactive (lp:1323719) + +2.4.0 (2014-05-26) +~~~~~~~~~~~~~~~~~~ + +* New helper in importer to import dependencies +* allow to customize the available versions without overriding the 'version' field +* New option 'Create Invoice On' on payment methods with options 'on paid', 'on validate' +* Using Magento on PHP 5.4 without using the compatibility patch would + break syncs'. Correct solution is to install the patch on Magento + though! http://magento.com/blog/magento-news/magento-now-supports-php-54 +* Allow to use HTTP Auth Basic to connect to the Magento API +* Retry jobs when they hit a 502, 503 or 504 error +* Added missing scheduler for import of products +* Fix: calculate correctly the discount ratio on sales order lines (lp:1201590) +* Possibility to exclude products from stock synchronizations +* Products disabled on Magento are imported disabled on OpenERP. An additional module allows more options. +* Possibility to disable import of sales orders per storeview +* Related Actions: open the form view on the record concerned by an export job, or open the Magento's admin page + on importing jobs +* Special order lines (shipping, ...) are now the last lines of an order, not the first + + +2.3.1 (2014-01-23) +~~~~~~~~~~~~~~~~~~ + +* Do not fail when a None value is given instead of a float when importing special lines of sales orders. (https://launchpad.net/bugs/1271537) + + +2.3.0 (2014-01-15 warning: API changes) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Compatibility with the Connector Framework: listeners 'on_record_create' receives + an additional argument 'vals'; 'on_record_write's named argument 'fields' becomes 'vals' + and receives the full dictionary of values +* Fix: wrong main image imported on products (https://launchpad.net/bugs/1258418) +* Changes calls to Mapper according to the new API of the Mappers. + See branch: https://code.launchpad.net/~openerp-connector-core-editors/openerp-connector/7.0-connector-mapper-refactor +* Fix: mismatch between tax excluding and tax including amount, new configuration option (https://launchpad.net/bugs/1234117) +* Fix: mismatch between tax excluding and tax including amount, new configuration option (https://launchpad.net/bugs/1234117) +* Implements the new API (connector_ecommerce) for the special order lines: + https://code.launchpad.net/~openerp-connector-core-editors/openerp-connector/7.0-e-commerce-addons-refactor-so-extra-lines/+merge/194629 + + +2.2.1 (2013.11.22) +~~~~~~~~~~~~~~~~~~ + +* Fix: Error when a sales order had no shipping method +* Fix: Searching for allowed carriers incorrectly uses magento_picking_id instead of magento_order_id (https://launchpad.net/bugs/1238951) +* Fix: Import of products fails when an image is missing (404 HTTP Error) (https://launchpad.net/bugs/1210543) +* Fix: Mapping of the states is not strict enough (https://launchpad.net/bugs/1250136) +* Fix: get_carriers() converting Magento order ID to int, fails with edited orders (https://launchpad.net/bugs/1253743) +* Fix: Importing authorized orders ignores PayPal orders (https://launchpad.net/bugs/1252308) + + +2.2.0 (public release - 2013.11.06) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Option to choose if the invoices are exported to Magento on payment or validation (Thanks to Allison Miller) +* Allow to define a prefix for the name of the imported sales orders (Thanks to Augustin Cisterne-Kaas) +* Fix: 'store_id' field in the Magento API contains the id of the storeview, and was mapped with the store. In some circumstances, sales orders may fail to import. (lp:1235269) +* Support of configurable products in import of sales orders + + +2.1.0 (2013.08.05) +~~~~~~~~~~~~~~~~~~ + +* Import of partners reviewed according to https://launchpad.net/bugs/1193281 + Especially to handle the b2b use cases better. +* Fix: Magento bindings duplicated with the "copy" method (https://launchpad.net/bugs/1205239) +* Fix: 503 Service unavailable protocol error should be retried later (https://launchpad.net/bugs/1194733) +* Fix: Import of guest orders (https://bugs.launchpad.net/openerp-connector/+bug/1193239) +* 'Authorized' import rules to be able to import sales orders authorized by a payment institute but not paid yet. (Thanks to Brendan Clune) +* Define the partners relationships only on the creation of new records, allowing manual specification of company / contact relationships within OpenERP (Thanks to Brendan Clune) +* Fix: State information for partners not mapped correctly (Thanks to Brendan Clune) (https://launchpad.net/bugs/1183837) +* Many others: see the bazaar logs + +2.0.0 +~~~~~ + +* First release + + +.. + Model: + 2.0.1 (date of release) + ~~~~~~~~~~~~~~~~~~~~~~~ + + * change 1 + * change 2 diff --git a/connector_magento/README.rst b/connector_magento/README.rst new file mode 100644 index 000000000..6e89c6ed7 --- /dev/null +++ b/connector_magento/README.rst @@ -0,0 +1,133 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +================= +Magento Connector +================= + +This is the new release of the Open-Source connector linking Odoo and +Magento also known under the name of **Magentoerpconnect**. It is +build on top of the `connector`_ framework. It is is structured so that +it can be extended or modified easily from separate addons, a factor of +success when the implementations of Magento vary a lot. + +Magento Odoo Connector is part of the Odoo Community Association (OCA). +The `source is on GitHub`_. + +This connector is designed to have a strong and efficient core, with the +ability to extend it with extension modules or local customizations. + +In other words, the core module contains the minimal scope to run your +e-commerce with Odoo and Magento. More advanced features are +installable using extensions. + +It features: + +Synchronizations: + +* Import the partners and addresses book +* Import the customer groups (becomes partner tags) +* Import the categories of products, with translations +* Import the products, with translations and main image +* Import the sales orders +* Export of the the stock quantities, + with configuration of the warehouse and an option to choose the stock + field to use +* Export the delivery orders status +* Export the tracking numbers +* Create the invoices on Magento and get their number back +* Resolve and import the dependencies when they are not yet imported + (ie. customer, products for sale order) + +Automatizations: + +* Use the `Automatic workflows` to automatize the workflow of the sales + according to the payment method (confirm orders, create and reconcile + payments, ...) +* Per payment method, choose when the orders are imported + (only when a payment is captured / authorized / always / never) +* Use the `Sales Exceptions` to prevents the processing of sales orders + with issues + +Technical points: + +* Built on top of the `connector`_ framework +* Use the `connector_ecommerce`_ addon to share the e-commerce capabilities + with other e-commerce addons +* Use the jobs system of the `connector`_ framework +* Create `connector`_ checkpoints when new records to verify are imported +* Support Magento 1.7+ (not 2.x), the support of earlier versions should be easy to + add, the `connector`_ framework being designed to handle multiple + versions with ease. +* Licensed under AGPL version 3 +* Designed to be usable with multiple Magento or any other e-commerce backends + in the same time. + + +.. _connector: https://github.com/OCA/connector +.. _connector_ecommerce: https://github.com/OCA/connector-ecommerce +.. _Camptocamp: http://www.camptocamp.com +.. _Akretion: http://www.akretion.com +.. _`source is on GitHub`: https://github.com/OCA/connector-magento + +Installation +============ + +To install this module, you need to: + +Read the full installation guide: +http://odoo-magento-connector.com/guides/installation_guide.html + +Configuration and usage +======================= + +Read +http://odoo-magento-connector.com/guides/installation_guide.html#after-the-installation + +Usage +===== +#. Go to ... + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/107/9.0 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +See `contributors' list`_ + + +.. _contributors' list: ./AUTHORS + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/connector_magento/__init__.py b/connector_magento/__init__.py new file mode 100644 index 000000000..71dcdd850 --- /dev/null +++ b/connector_magento/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import setting +from . import binding + +from . import components + +from . import magento_model +from . import product +from . import product_category +from . import partner +from . import partner_category +from . import invoice +from . import sale +from . import delivery +from . import stock_picking +from . import stock_tracking +from . import account_payment_mode + +from . import consumer +from . import models diff --git a/connector_magento/__manifest__.py b/connector_magento/__manifest__.py new file mode 100644 index 000000000..70a3283a2 --- /dev/null +++ b/connector_magento/__manifest__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{'name': 'Magento Connector', + 'version': '10.0.1.0.0', + 'category': 'Connector', + 'depends': ['account', + 'product', + 'delivery', + 'sale_stock', + 'connector_ecommerce', + # 'product_multi_category', + ], + 'external_dependencies': { + 'python': ['magento'], + }, + 'author': "Camptocamp,Akretion,Sodexis,Odoo Community Association (OCA)", + 'license': 'AGPL-3', + 'website': 'http://www.odoo-magento-connector.com', + 'images': ['images/magento_backend.png', + 'images/jobs.png', + 'images/product_binding.png', + 'images/invoice_binding.png', + 'images/connector_magento.png', + ], + 'data': ['data/connector_magento_data.xml', + 'security/ir.model.access.csv', + # 'views/setting_view.xml', + 'views/magento_model_view.xml', + 'views/product_view.xml', + 'views/product_category_view.xml', + 'views/partner_view.xml', + # 'views/sale_view.xml', + # 'views/invoice_view.xml', + 'views/connector_magento_menu.xml', + # 'views/delivery_view.xml', + # 'views/stock_view.xml', + # 'views/account_payment_mode_view.xml', + ], + 'installable': True, + 'application': True, + } diff --git a/connector_magento/account_payment_mode.py b/connector_magento/account_payment_mode.py new file mode 100644 index 000000000..8766f1f89 --- /dev/null +++ b/connector_magento/account_payment_mode.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields + + +class AccountPaymentMode(models.Model): + _inherit = "account.payment.mode" + + create_invoice_on = fields.Selection( + selection=[('open', 'Validate'), + ('paid', 'Paid')], + string='Create invoice on action', + help="Should the invoice be created in Magento " + "when it is validated or when it is paid in Odoo?\n" + "If nothing is set, the option falls back to the same option " + "on the Magento store related to the sales order.", + ) diff --git a/connector_magento/binding.py b/connector_magento/binding.py new file mode 100644 index 000000000..06a38dbf8 --- /dev/null +++ b/connector_magento/binding.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# © 2013-2017 Guewen Baconnier,Camptocamp SA,Akretion +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, models, fields +from odoo.addons.queue_job.job import job, related_action + + +class MagentoBinding(models.AbstractModel): + """ Abstract Model for the Bindigs. + + All the models used as bindings between Magento and Odoo + (``magento.res.partner``, ``magento.product.product``, ...) should + ``_inherit`` it. + """ + _name = 'magento.binding' + _inherit = 'external.binding' + _description = 'Magento Binding (abstract)' + + # odoo_id = odoo-side id must be declared in concrete model + backend_id = fields.Many2one( + comodel_name='magento.backend', + string='Magento Backend', + required=True, + ondelete='restrict', + ) + # fields.Char because 0 is a valid Magento ID + # TODO: migration from 'external_id' + external_id = fields.Char(string='ID on Magento') + + _sql_constraints = [ + ('magento_uniq', 'unique(backend_id, external_id)', + 'A binding already exists with the same Magento ID.'), + ] + + @job(default_channel='root.magento') + @related_action(action='related_action_magento_link') + @api.model + def import_batch(self, backend, filters=None): + """ Prepare the import of records modified on Magento """ + if filters is None: + filters = {} + with backend.work_on(self._name) as work: + importer = work.component(usage='batch.importer') + return importer.run(filters=filters) + + @job(default_channel='root.magento') + @related_action(action='related_action_magento_link') + @api.model + def import_record(self, backend, external_id, force=False): + """ Import a Magento record """ + with backend.work_on(self._name) as work: + importer = work.component(usage='record.importer') + return importer.run(external_id, force=force) + + @job(default_channel='root.magento') + @related_action(action='related_action_unwrap_binding') + @api.multi + def export_record(self, fields=None): + """ Export a record on Magento """ + self.ensure_one() + with self.backend_id.work_on(self._name) as work: + exporter = work.component(usage='record.exporter') + return exporter.run(self, fields) + + @job(default_channel='root.magento') + @related_action(action='related_action_magento_link') + def export_delete_record(self, backend, external_id): + """ Delete a record on Magento """ + with backend.work_on(self._name) as work: + deleter = work.component(usage='record.exporter.deleter') + return deleter.run(external_id) diff --git a/connector_magento/components/__init__.py b/connector_magento/components/__init__.py new file mode 100644 index 000000000..f036ef4ec --- /dev/null +++ b/connector_magento/components/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- + +from . import core +from . import backend_adapter +from . import binder +from . import importer +from . import exporter +from . import mapper +from . import deleter diff --git a/connector_magento/components/backend_adapter.py b/connector_magento/components/backend_adapter.py new file mode 100644 index 000000000..ab9cf1b96 --- /dev/null +++ b/connector_magento/components/backend_adapter.py @@ -0,0 +1,272 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +import socket +import logging +import xmlrpclib + +import magento as magentolib +from odoo.addons.component.core import AbstractComponent +from odoo.addons.queue_job.exception import RetryableJobError +from odoo.addons.connector.exception import NetworkRetryableError +from datetime import datetime +_logger = logging.getLogger(__name__) + + +MAGENTO_DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S' + + +recorder = {} + + +# TODO: use vcr.py? +def call_to_key(method, arguments): + """ Used to 'freeze' the method and arguments of a call to Magento + so they can be hashable; they will be stored in a dict. + + Used in both the recorder and the tests. + """ + def freeze(arg): + if isinstance(arg, dict): + items = dict((key, freeze(value)) for key, value + in arg.iteritems()) + return frozenset(items.iteritems()) + elif isinstance(arg, list): + return tuple([freeze(item) for item in arg]) + else: + return arg + + new_args = [] + for arg in arguments: + new_args.append(freeze(arg)) + return (method, tuple(new_args)) + + +def record(method, arguments, result): + """ Utility function which can be used to record test data + during synchronisations. Call it from MagentoCRUDAdapter._call + + Then ``output_recorder`` can be used to write the data recorded + to a file. + """ + recorder[call_to_key(method, arguments)] = result + + +def output_recorder(filename): + import pprint + with open(filename, 'w') as f: + pprint.pprint(recorder, f) + _logger.debug('recorder written to file %s', filename) + + +class MagentoLocation(object): + + def __init__(self, location, username, password, + use_custom_api_path=False): + self._location = location + self.username = username + self.password = password + self.use_custom_api_path = use_custom_api_path + + self.use_auth_basic = False + self.auth_basic_username = None + self.auth_basic_password = None + + @property + def location(self): + location = self._location + if not self.use_auth_basic: + return location + assert self.auth_basic_username and self.auth_basic_password + replacement = "%s:%s@" % (self.auth_basic_username, + self.auth_basic_password) + location = location.replace('://', '://' + replacement) + return location + + +class MagentoAPI(object): + + def __init__(self, location): + """ + :param location: Magento location + :type location: :class:`MagentoLocation` + """ + self._location = location + self._api = None + + @property + def api(self): + if self._api is None: + custom_url = self._location.use_custom_api_path + api = magentolib.API( + self._location.location, + self._location.username, + self._location.password, + full_url=custom_url + ) + api.__enter__() + self._api = api + return self._api + + def __enter__(self): + # we do nothing, api is lazy + return self + + def __exit__(self, type, value, traceback): + if self._api is not None: + self._api.__exit__(type, value, traceback) + + def call(self, method, arguments): + try: + # When Magento is installed on PHP 5.4+, the API + # may return garble data if the arguments contain + # trailing None. + if isinstance(arguments, list): + while arguments and arguments[-1] is None: + arguments.pop() + start = datetime.now() + try: + result = self.api.call(method, arguments) + except: + _logger.error("api.call('%s', %s) failed", method, arguments) + raise + else: + _logger.debug("api.call('%s', %s) returned %s in %s seconds", + method, arguments, result, + (datetime.now() - start).seconds) + # Uncomment to record requests/responses in ``recorder`` + # record(method, arguments, result) + return result + except (socket.gaierror, socket.error, socket.timeout) as err: + raise NetworkRetryableError( + 'A network error caused the failure of the job: ' + '%s' % err) + except xmlrpclib.ProtocolError as err: + if err.errcode in [502, # Bad gateway + 503, # Service unavailable + 504]: # Gateway timeout + raise RetryableJobError( + 'A protocol error caused the failure of the job:\n' + 'URL: %s\n' + 'HTTP/HTTPS headers: %s\n' + 'Error code: %d\n' + 'Error message: %s\n' % + (err.url, err.headers, err.errcode, err.errmsg)) + else: + raise + + +class MagentoCRUDAdapter(AbstractComponent): + """ External Records Adapter for Magento """ + + _name = 'magento.crud.adapter' + _inherit = ['base.backend.adapter', 'base.magento.connector'] + _usage = 'backend.adapter' + + def search(self, filters=None): + """ Search records according to some criterias + and returns a list of ids """ + raise NotImplementedError + + def read(self, id, attributes=None): + """ Returns the information of a record """ + raise NotImplementedError + + def search_read(self, filters=None): + """ Search records according to some criterias + and returns their information""" + raise NotImplementedError + + def create(self, data): + """ Create a record on the external system """ + raise NotImplementedError + + def write(self, id, data): + """ Update records on the external system """ + raise NotImplementedError + + def delete(self, id): + """ Delete a record on the external system """ + raise NotImplementedError + + def _call(self, method, arguments): + try: + magento_api = getattr(self.work, 'magento_api') + except AttributeError: + raise AttributeError( + 'You must provide a magento_api attribute with a ' + 'MagentoAPI instance to be able to use the ' + 'Backend Adapter.' + ) + return magento_api.call(method, arguments) + + +class GenericAdapter(AbstractComponent): + + _name = 'magento.adapter' + _inherit = 'magento.crud.adapter' + + _magento_model = None + _admin_path = None + + def search(self, filters=None): + """ Search records according to some criterias + and returns a list of ids + + :rtype: list + """ + return self._call('%s.search' % self._magento_model, + [filters] if filters else [{}]) + + def read(self, id, attributes=None): + """ Returns the information of a record + + :rtype: dict + """ + arguments = [int(id)] + if attributes: + # Avoid to pass Null values in attributes. Workaround for + # https://bugs.launchpad.net/openerp-connector-magento/+bug/1210775 + # When Magento is installed on PHP 5.4 and the compatibility patch + # http://magento.com/blog/magento-news/magento-now-supports-php-54 + # is not installed, calling info() with None in attributes + # would return a wrong result (almost empty list of + # attributes). The right correction is to install the + # compatibility patch on Magento. + arguments.append(attributes) + return self._call('%s.info' % self._magento_model, + arguments) + + def search_read(self, filters=None): + """ Search records according to some criterias + and returns their information""" + return self._call('%s.list' % self._magento_model, [filters]) + + def create(self, data): + """ Create a record on the external system """ + return self._call('%s.create' % self._magento_model, [data]) + + def write(self, id, data): + """ Update records on the external system """ + return self._call('%s.update' % self._magento_model, + [int(id), data]) + + def delete(self, id): + """ Delete a record on the external system """ + return self._call('%s.delete' % self._magento_model, [int(id)]) + + def admin_url(self, id): + """ Return the URL in the Magento admin for a record """ + if self._admin_path is None: + raise ValueError('No admin path is defined for this record') + backend = self.backend_record + url = backend.admin_location + if not url: + raise ValueError('No admin URL configured on the backend.') + path = self._admin_path.format(model=self._magento_model, + id=id) + url = url.rstrip('/') + path = path.lstrip('/') + url = '/'.join((url, path)) + return url diff --git a/connector_magento/components/binder.py b/connector_magento/components/binder.py new file mode 100644 index 000000000..1b7e30ce5 --- /dev/null +++ b/connector_magento/components/binder.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.addons.component.core import Component + + +class MagentoModelBinder(Component): + """ Bind records and give odoo/magento ids correspondence + + Binding models are models called ``magento.{normal_model}``, + like ``magento.res.partner`` or ``magento.product.product``. + They are ``_inherits`` of the normal models and contains + the Magento ID, the ID of the Magento Backend and the additional + fields belonging to the Magento instance. + """ + _name = 'magento.binder' + _inherit = ['base.binder', 'base.magento.connector'] + _apply_on = [ + 'magento.website', + 'magento.store', + 'magento.storeview', + 'magento.res.partner', + 'magento.address', + 'magento.res.partner.category', + 'magento.product.category', + 'magento.product.product', + 'magento.stock.picking', + 'magento.sale.order', + 'magento.sale.order.line', + 'magento.account.invoice', + ] diff --git a/connector_magento/components/core.py b/connector_magento/components/core.py new file mode 100644 index 000000000..fe7abf3b2 --- /dev/null +++ b/connector_magento/components/core.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo.addons.component.core import AbstractComponent + + +class BaseMagentoConnectorComponent(AbstractComponent): + + _name = 'base.magento.connector' + _inherit = 'base.connector' + _collection = 'magento.backend' diff --git a/connector_magento/components/deleter.py b/connector_magento/components/deleter.py new file mode 100644 index 000000000..cb8a2c9ce --- /dev/null +++ b/connector_magento/components/deleter.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo.tools.translate import _ +from odoo.addons.component.core import AbstractComponent + + +class MagentoDeleter(AbstractComponent): + """ Base deleter for Magento """ + _name = 'magento.exporter.deleter' + _inherit = 'base.deleter' + _usage = 'record.exporter.deleter' + + def run(self, external_id): + """ Run the synchronization, delete the record on Magento + + :param external_id: identifier of the record to delete + """ + self.backend_adapter.delete(external_id) + return _('Record %s deleted on Magento') % (external_id,) diff --git a/connector_magento/components/exporter.py b/connector_magento/components/exporter.py new file mode 100644 index 000000000..b1571ff5f --- /dev/null +++ b/connector_magento/components/exporter.py @@ -0,0 +1,370 @@ +# -*- coding: utf-8 -*- +# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import logging + +from contextlib import contextmanager +from datetime import datetime + +import psycopg2 + +import odoo +from odoo import _ +from odoo.addons.component.core import AbstractComponent +from odoo.addons.connector.exception import (IDMissingInBackend, + RetryableJobError) +from .backend_adapter import MAGENTO_DATETIME_FORMAT + +_logger = logging.getLogger(__name__) + + +""" + +Exporters for Magento. + +In addition to its export job, an exporter has to: + +* check in Magento if the record has been updated more recently than the + last sync date and if yes, delay an import +* call the ``bind`` method of the binder to update the last sync date + +""" + + +class MagentoBaseExporter(AbstractComponent): + """ Base exporter for Magento """ + + _name = 'magento.base.exporter' + _inherit = ['base.exporter', 'base.magento.connector'] + _usage = 'record.exporter' + + def __init__(self, working_context): + super(MagentoBaseExporter, self).__init__(working_context) + self.binding = None + self.external_id = None + + def _delay_import(self): + """ Schedule an import of the record. + + Adapt in the sub-classes when the model is not imported + using ``import_record``. + """ + # force is True because the sync_date will be more recent + # so the import would be skipped + assert self.external_id + self.binding.with_delay().import_record(self.backend_record, + self.external_id, + force=True) + + def _should_import(self): + """ Before the export, compare the update date + in Magento and the last sync date in Odoo, + if the former is more recent, schedule an import + to not miss changes done in Magento. + """ + assert self.binding + if not self.external_id: + return False + sync = self.binding.sync_date + if not sync: + return True + record = self.backend_adapter.read(self.external_id, + attributes=['updated_at']) + if not record['updated_at']: + # in rare case it can be empty, in doubt, import it + return False + sync_date = odoo.fields.Datetime.from_string(sync) + magento_date = datetime.strptime(record['updated_at'], + MAGENTO_DATETIME_FORMAT) + return sync_date < magento_date + + def run(self, binding, *args, **kwargs): + """ Run the synchronization + + :param binding: binding record to export + """ + self.binding = binding + + self.external_id = self.binder.to_external(self.binding) + try: + should_import = self._should_import() + except IDMissingInBackend: + self.external_id = None + should_import = False + if should_import: + self._delay_import() + + result = self._run(*args, **kwargs) + + self.binder.bind(self.external_id, self.binding) + # Commit so we keep the external ID when there are several + # exports (due to dependencies) and one of them fails. + # The commit will also release the lock acquired on the binding + # record + if not odoo.tools.config['test_enable']: + self.env.cr.commit() + + self._after_export() + return result + + def _run(self): + """ Flow of the synchronization, implemented in inherited classes""" + raise NotImplementedError + + def _after_export(self): + """ Can do several actions after exporting a record on magento """ + pass + + +class MagentoExporter(AbstractComponent): + """ A common flow for the exports to Magento """ + + _name = 'magento.exporter' + _inherit = 'magento.base.exporter' + + def __init__(self, working_context): + super(MagentoExporter, self).__init__(working_context) + self.binding = None + + def _lock(self): + """ Lock the binding record. + + Lock the binding record so we are sure that only one export + job is running for this record if concurrent jobs have to export the + same record. + + When concurrent jobs try to export the same record, the first one + will lock and proceed, the others will fail to lock and will be + retried later. + + This behavior works also when the export becomes multilevel + with :meth:`_export_dependencies`. Each level will set its own lock + on the binding record it has to export. + + """ + sql = ("SELECT id FROM %s WHERE ID = %%s FOR UPDATE NOWAIT" % + self.model._table) + try: + self.env.cr.execute(sql, (self.binding.id, ), + log_exceptions=False) + except psycopg2.OperationalError: + _logger.info('A concurrent job is already exporting the same ' + 'record (%s with id %s). Job delayed later.', + self.model._name, self.binding.id) + raise RetryableJobError( + 'A concurrent job is already exporting the same record ' + '(%s with id %s). The job will be retried later.' % + (self.model._name, self.binding.id)) + + def _has_to_skip(self): + """ Return True if the export can be skipped """ + return False + + @contextmanager + def _retry_unique_violation(self): + """ Context manager: catch Unique constraint error and retry the + job later. + + When we execute several jobs workers concurrently, it happens + that 2 jobs are creating the same record at the same time (binding + record created by :meth:`_export_dependency`), resulting in: + + IntegrityError: duplicate key value violates unique + constraint "magento_product_product_odoo_uniq" + DETAIL: Key (backend_id, odoo_id)=(1, 4851) already exists. + + In that case, we'll retry the import just later. + + .. warning:: The unique constraint must be created on the + binding record to prevent 2 bindings to be created + for the same Magento record. + + """ + try: + yield + except psycopg2.IntegrityError as err: + if err.pgcode == psycopg2.errorcodes.UNIQUE_VIOLATION: + raise RetryableJobError( + 'A database error caused the failure of the job:\n' + '%s\n\n' + 'Likely due to 2 concurrent jobs wanting to create ' + 'the same record. The job will be retried later.' % err) + else: + raise + + def _export_dependency(self, relation, binding_model, + component_usage='record.exporter', + binding_field='magento_bind_ids', + binding_extra_vals=None): + """ + Export a dependency. The exporter class is a subclass of + ``MagentoExporter``. If a more precise class need to be defined, + it can be passed to the ``exporter_class`` keyword argument. + + .. warning:: a commit is done at the end of the export of each + dependency. The reason for that is that we pushed a record + on the backend and we absolutely have to keep its ID. + + So you *must* take care not to modify the Odoo + database during an export, excepted when writing + back the external ID or eventually to store + external data that we have to keep on this side. + + You should call this method only at the beginning + of the exporter synchronization, + in :meth:`~._export_dependencies`. + + :param relation: record to export if not already exported + :type relation: :py:class:`odoo.models.BaseModel` + :param binding_model: name of the binding model for the relation + :type binding_model: str | unicode + :param component_usage: 'usage' to look for to find the Component to + for the export, by default 'record.exporter' + :type exporter: str | unicode + :param binding_field: name of the one2many field on a normal + record that points to the binding record + (default: magento_bind_ids). + It is used only when the relation is not + a binding but is a normal record. + :type binding_field: str | unicode + :binding_extra_vals: In case we want to create a new binding + pass extra values for this binding + :type binding_extra_vals: dict + """ + if not relation: + return + rel_binder = self.binder_for(binding_model) + # wrap is typically True if the relation is for instance a + # 'product.product' record but the binding model is + # 'magento.product.product' + wrap = relation._name != binding_model + + if wrap and hasattr(relation, binding_field): + domain = [('odoo_id', '=', relation.id), + ('backend_id', '=', self.backend_record.id)] + binding = self.env[binding_model].search(domain) + if binding: + assert len(binding) == 1, ( + 'only 1 binding for a backend is ' + 'supported in _export_dependency') + # we are working with a unwrapped record (e.g. + # product.category) and the binding does not exist yet. + # Example: I created a product.product and its binding + # magento.product.product and we are exporting it, but we need to + # create the binding for the product.category on which it + # depends. + else: + bind_values = {'backend_id': self.backend_record.id, + 'odoo_id': relation.id} + if binding_extra_vals: + bind_values.update(binding_extra_vals) + # If 2 jobs create it at the same time, retry + # one later. A unique constraint (backend_id, + # odoo_id) should exist on the binding model + with self._retry_unique_violation(): + binding = (self.env[binding_model] + .with_context(connector_no_export=True) + .sudo() + .create(bind_values)) + # Eager commit to avoid having 2 jobs + # exporting at the same time. The constraint + # will pop if an other job already created + # the same binding. It will be caught and + # raise a RetryableJobError. + if not odoo.tools.config['test_enable']: + self.env.cr.commit() + else: + # If magento_bind_ids does not exist we are typically in a + # "direct" binding (the binding record is the same record). + # If wrap is True, relation is already a binding record. + binding = relation + + if not rel_binder.to_external(binding): + exporter = self.component(usage=component_usage, + model_name=binding_model) + exporter.run(binding) + + def _export_dependencies(self): + """ Export the dependencies for the record""" + return + + def _map_data(self): + """ Returns an instance of + :py:class:`~odoo.addons.connector.components.mapper.MapRecord` + + """ + return self.mapper.map_record(self.binding) + + def _validate_create_data(self, data): + """ Check if the values to import are correct + + Pro-actively check before the ``Model.create`` if some fields + are missing or invalid + + Raise `InvalidDataError` + """ + return + + def _validate_update_data(self, data): + """ Check if the values to import are correct + + Pro-actively check before the ``Model.update`` if some fields + are missing or invalid + + Raise `InvalidDataError` + """ + return + + def _create_data(self, map_record, fields=None, **kwargs): + """ Get the data to pass to :py:meth:`_create` """ + return map_record.values(for_create=True, fields=fields, **kwargs) + + def _create(self, data): + """ Create the Magento record """ + # special check on data before export + self._validate_create_data(data) + return self.backend_adapter.create(data) + + def _update_data(self, map_record, fields=None, **kwargs): + """ Get the data to pass to :py:meth:`_update` """ + return map_record.values(fields=fields, **kwargs) + + def _update(self, data): + """ Update an Magento record """ + assert self.external_id + # special check on data before export + self._validate_update_data(data) + self.backend_adapter.write(self.external_id, data) + + def _run(self, fields=None): + """ Flow of the synchronization, implemented in inherited classes""" + assert self.binding + + if not self.external_id: + fields = None # should be created with all the fields + + if self._has_to_skip(): + return + + # export the missing linked resources + self._export_dependencies() + + # prevent other jobs to export the same record + # will be released on commit (or rollback) + self._lock() + + map_record = self._map_data() + + if self.external_id: + record = self._update_data(map_record, fields=fields) + if not record: + return _('Nothing to export.') + self._update(record) + else: + record = self._create_data(map_record, fields=fields) + if not record: + return _('Nothing to export.') + self.external_id = self._create(record) + return _('Record exported with ID %s on Magento.') % self.external_id diff --git a/connector_magento/components/importer.py b/connector_magento/components/importer.py new file mode 100644 index 000000000..fc629d7ce --- /dev/null +++ b/connector_magento/components/importer.py @@ -0,0 +1,326 @@ +# -*- coding: utf-8 -*- +# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +""" + +Importers for Magento. + +An import can be skipped if the last sync date is more recent than +the last update in Magento. + +They should call the ``bind`` method if the binder even if the records +are already bound, to update the last sync date. + +""" + +import logging +from odoo import fields, _ +from odoo.addons.component.core import AbstractComponent, Component +from odoo.addons.connector.exception import IDMissingInBackend +from odoo.addons.queue_job.exception import NothingToDoJob + +_logger = logging.getLogger(__name__) + + +class MagentoImporter(AbstractComponent): + """ Base importer for Magento """ + + _name = 'magento.importer' + _inherit = ['base.importer', 'base.magento.connector'] + _usage = 'record.importer' + + def __init__(self, work_context): + super(MagentoImporter, self).__init__(work_context) + self.external_id = None + self.magento_record = None + + def _get_magento_data(self): + """ Return the raw Magento data for ``self.external_id`` """ + return self.backend_adapter.read(self.external_id) + + def _before_import(self): + """ Hook called before the import, when we have the Magento + data""" + + def _is_uptodate(self, binding): + """Return True if the import should be skipped because + it is already up-to-date in OpenERP""" + assert self.magento_record + if not self.magento_record.get('updated_at'): + return # no update date on Magento, always import it. + if not binding: + return # it does not exist so it should not be skipped + sync = binding.sync_date + if not sync: + return + from_string = fields.Datetime.from_string + sync_date = from_string(sync) + magento_date = from_string(self.magento_record['updated_at']) + # if the last synchronization date is greater than the last + # update in magento, we skip the import. + # Important: at the beginning of the exporters flows, we have to + # check if the magento_date is more recent than the sync_date + # and if so, schedule a new import. If we don't do that, we'll + # miss changes done in Magento + return magento_date < sync_date + + def _import_dependency(self, external_id, binding_model, + importer=None, always=False): + """ Import a dependency. + + The importer class is a class or subclass of + :class:`MagentoImporter`. A specific class can be defined. + + :param external_id: id of the related binding to import + :param binding_model: name of the binding model for the relation + :type binding_model: str | unicode + :param importer_component: component to use for import + By default: 'importer' + :type importer_component: Component + :param always: if True, the record is updated even if it already + exists, note that it is still skipped if it has + not been modified on Magento since the last + update. When False, it will import it only when + it does not yet exist. + :type always: boolean + """ + if not external_id: + return + binder = self.binder_for(binding_model) + if always or not binder.to_internal(external_id): + if importer is None: + importer = self.component(usage='record.importer', + model_name=binding_model) + try: + importer.run(external_id) + except NothingToDoJob: + _logger.info( + 'Dependency import of %s(%s) has been ignored.', + binding_model._name, external_id + ) + + def _import_dependencies(self): + """ Import the dependencies for the record + + Import of dependencies can be done manually or by calling + :meth:`_import_dependency` for each dependency. + """ + return + + def _map_data(self): + """ Returns an instance of + :py:class:`~odoo.addons.connector.components.mapper.MapRecord` + + """ + return self.mapper.map_record(self.magento_record) + + def _validate_data(self, data): + """ Check if the values to import are correct + + Pro-actively check before the ``_create`` or + ``_update`` if some fields are missing or invalid. + + Raise `InvalidDataError` + """ + return + + def _must_skip(self): + """ Hook called right after we read the data from the backend. + + If the method returns a message giving a reason for the + skipping, the import will be interrupted and the message + recorded in the job (if the import is called directly by the + job, not by dependencies). + + If it returns None, the import will continue normally. + + :returns: None | str | unicode + """ + return + + def _get_binding(self): + return self.binder.to_internal(self.external_id) + + def _create_data(self, map_record, **kwargs): + return map_record.values(for_create=True, **kwargs) + + def _create(self, data): + """ Create the OpenERP record """ + # special check on data before import + self._validate_data(data) + model = self.model.with_context(connector_no_export=True) + binding = model.create(data) + _logger.debug('%d created from magento %s', binding, self.external_id) + return binding + + def _update_data(self, map_record, **kwargs): + return map_record.values(**kwargs) + + def _update(self, binding, data): + """ Update an OpenERP record """ + # special check on data before import + self._validate_data(data) + binding.with_context(connector_no_export=True).write(data) + _logger.debug('%d updated from magento %s', binding, self.external_id) + return + + def _after_import(self, binding): + """ Hook called at the end of the import """ + return + + def run(self, external_id, force=False): + """ Run the synchronization + + :param external_id: identifier of the record on Magento + """ + self.external_id = external_id + lock_name = 'import({}, {}, {}, {})'.format( + self.backend_record._name, + self.backend_record.id, + self.model._name, + external_id, + ) + + try: + self.magento_record = self._get_magento_data() + except IDMissingInBackend: + return _('Record does no longer exist in Magento') + + skip = self._must_skip() + if skip: + return skip + + binding = self._get_binding() + + if not force and self._is_uptodate(binding): + return _('Already up-to-date.') + + # Keep a lock on this import until the transaction is committed + # The lock is kept since we have detected that the informations + # will be updated into Odoo + self.advisory_lock_or_retry(lock_name) + self._before_import() + + # import the missing linked resources + self._import_dependencies() + + map_record = self._map_data() + + if binding: + record = self._update_data(map_record) + self._update(binding, record) + else: + record = self._create_data(map_record) + binding = self._create(record) + + self.binder.bind(self.external_id, binding) + + self._after_import(binding) + + +class BatchImporter(AbstractComponent): + """ The role of a BatchImporter is to search for a list of + items to import, then it can either import them directly or delay + the import of each item separately. + """ + + _name = 'magento.batch.importer' + _inherit = ['base.importer', 'base.magento.connector'] + _usage = 'batch.importer' + + def run(self, filters=None): + """ Run the synchronization """ + record_ids = self.backend_adapter.search(filters) + for record_id in record_ids: + self._import_record(record_id) + + def _import_record(self, external_id): + """ Import a record directly or delay the import of the record. + + Method to implement in sub-classes. + """ + raise NotImplementedError + + +class DirectBatchImporter(AbstractComponent): + """ Import the records directly, without delaying the jobs. """ + + _name = 'magento.direct.batch.importer' + _inherit = 'magento.batch.importer' + + def _import_record(self, external_id): + """ Import the record directly """ + self.model.import_record(self.backend_record, external_id) + + +class DelayedBatchImporter(AbstractComponent): + """ Delay import of the records """ + + _name = 'magento.delayed.batch.importer' + _inherit = 'magento.batch.importer' + + def _import_record(self, external_id, job_options=None, **kwargs): + """ Delay the import of the records""" + delayable = self.model.with_delay(**job_options or {}) + delayable.import_record(self.backend_record, external_id, **kwargs) + + +class SimpleRecordImporter(Component): + """ Import one Magento Website """ + + _name = 'magento.simple.record.importer' + _inherit = 'magento.importer' + _apply_on = [ + 'magento.website', + 'magento.res.partner.category', + ] + + +class TranslationImporter(Component): + """ Import translations for a record. + + Usually called from importers, in ``_after_import``. + For instance from the products and products' categories importers. + """ + + _name = 'magento.translation.importer' + _inherit = 'magento.importer' + _usage = 'translation.importer' + + def _get_magento_data(self, storeview_id=None): + """ Return the raw Magento data for ``self.external_id`` """ + return self.backend_adapter.read(self.external_id, storeview_id) + + def run(self, external_id, binding, mapper=None): + self.external_id = external_id + storeviews = self.env['magento.storeview'].search( + [('backend_id', '=', self.backend_record.id)] + ) + default_lang = self.backend_record.default_lang_id + lang_storeviews = [sv for sv in storeviews + if sv.lang_id and sv.lang_id != default_lang] + if not lang_storeviews: + return + + # find the translatable fields of the model + fields = self.model.fields_get() + translatable_fields = [field for field, attrs in fields.iteritems() + if attrs.get('translate')] + + if mapper is None: + mapper = self.mapper + else: + mapper = self.component_by_name(mapper) + + for storeview in lang_storeviews: + lang_record = self._get_magento_data(storeview.external_id) + map_record = mapper.map_record(lang_record) + record = map_record.values() + + data = dict((field, value) for field, value in record.iteritems() + if field in translatable_fields) + + binding.with_context(connector_no_export=True, + lang=storeview.lang_id.code).write(data) diff --git a/connector_magento/components/mapper.py b/connector_magento/components/mapper.py new file mode 100644 index 000000000..772b9bbf0 --- /dev/null +++ b/connector_magento/components/mapper.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.addons.component.core import AbstractComponent + + +class MagentoImportMapper(AbstractComponent): + _name = 'magento.import.mapper' + _inherit = ['base.magento.connector', 'base.import.mapper'] + _usage = 'import.mapper' + + +class MagentoExportMapper(AbstractComponent): + _name = 'magento.export.mapper' + _inherit = ['base.magento.connector', 'base.export.mapper'] + _usage = 'export.mapper' + + +def normalize_datetime(field): + """Change a invalid date which comes from Magento, if + no real date is set to null for correct import to + OpenERP""" + + def modifier(self, record, to_attr): + if record[field] == '0000-00-00 00:00:00': + return None + return record[field] + return modifier diff --git a/connector_magento/consumer.py b/connector_magento/consumer.py new file mode 100644 index 000000000..bcfbaeaf2 --- /dev/null +++ b/connector_magento/consumer.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + + +def delay_export(env, model_name, record_id, vals): + """ Delay a job which export a binding record. + + (A binding record being a ``magento.res.partner``, + ``magento.product.product``, ...) + """ + if env.context.get('connector_no_export'): + return + fields = vals.keys() + delayable = env[model_name].browse(record_id).with_delay() + delayable.export_record(fields=fields) + + +def delay_export_all_bindings(env, model_name, record_id, vals): + """ Delay a job which export all the bindings of a record. + + In this case, it is called on records of normal models and will delay + the export for all the bindings. + """ + if env.context.get('connector_no_export'): + return + record = env[model_name].browse(record_id) + for binding in record.magento_bind_ids: + delay_export(env, binding._name, binding.id, vals) + + +def delay_unlink(env, model_name, record_id): + """ Delay a job which delete a record on Magento. + + Called on binding records.""" + record = env[model_name].browse(record_id) + with record.backend_id.work_on(model_name) as work: + binder = work.component(usage='binder') + external_id = binder.to_external(record_id) + if external_id: + binding = env[model_name].browse(record_id) + binding.with_delay().export_delete_record(record.backend_id, + external_id) diff --git a/connector_magento/data/connector_magento_data.xml b/connector_magento/data/connector_magento_data.xml new file mode 100644 index 000000000..65ae54d58 --- /dev/null +++ b/connector_magento/data/connector_magento_data.xml @@ -0,0 +1,122 @@ + + + + + 3 + + + + Magento - Import Sales Orders + + + 1 + days + -1 + + + + + + + + Magento - Import Customer Groups + + + 1 + days + -1 + + + + + + + + Magento - Import Partners + + + 1 + days + -1 + + + + + + + + Magento - Import Product Categories + + + 1 + days + -1 + + + + + + + + Magento - Import Products + + + 1 + days + -1 + + + + + + + + Magento - Update Stock Quantities + + + 1 + hours + -1 + + + + + + + + Total Amount differs from Magento + The amount computed in Odoo doesn't match with the amount in Magento. + +Cause: +The taxes are probably different between Odoo and Magento. A fiscal position could have changed the final price. + +Resolution: +Check your taxes and fiscal positions configuration and correct them if necessary. + 30 + sale.order + sale + if sale.magento_bind_ids and abs(sale.amount_total - sale.magento_bind_ids[0].total_amount) >= 0.01: + failed = True + + + + + Total Tax Amount differs from Magento + The tax amount computed in Odoo doesn't match with the tax amount in Magento. + +Cause: +The taxes are probably different between Odoo and Magento. A fiscal position could have changed the final price. + +Resolution: +Check your taxes and fiscal positions configuration and correct them if necessary. + 30 + sale.order + sale + # By default, a cent of difference for the tax amount is allowed, feel free to customise it in your own module +if sale.magento_bind_ids and abs(sale.amount_tax - sale.magento_bind_ids[0].total_amount_tax) > 0.01: + failed = True + + + + + diff --git a/connector_magento/delivery.py b/connector_magento/delivery.py new file mode 100644 index 000000000..084fc69e0 --- /dev/null +++ b/connector_magento/delivery.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields, api + + +# TODO magento.delivery.carrier & move specific stuff +class DeliveryCarrier(models.Model): + """ Adds Magento specific fields to ``delivery.carrier`` + + ``magento_code`` + + Code of the carrier delivery method in Magento. + Example: ``colissimo_express`` + + ``magento_tracking_title`` + + Display name of the carrier for the tracking in Magento. + Example: Colissimo Express + + ``magento_carrier_code`` + + General code of the carrier, the first part of the ``magento_code``. + Example: ``colissimo`` for the method ``colissimo_express``. + + ``magento_export_tracking`` + + Defines if the tracking numbers should be exported to Magento. + """ + _inherit = "delivery.carrier" + + magento_code = fields.Char( + string='Magento Carrier Code', + required=False, + ) + magento_tracking_title = fields.Char( + string='Magento Tracking Title', + required=False, + ) + # in Magento, the delivery method is something like that: + # tntmodule2_tnt_basic + # where the first part before the first _ is always the carrier code + # in this example, the carrier code is tntmodule2 + magento_carrier_code = fields.Char( + compute='_compute_carrier_code', + string='Magento Base Carrier Code', + ) + magento_export_tracking = fields.Boolean(string='Export tracking numbers', + default=True) + + @api.depends('magento_code') + def _compute_carrier_code(self): + for carrier in self: + if carrier.magento_code: + self.magento_carrier_code = carrier.magento_code.split('_')[0] diff --git a/connector_magento/doc/Makefile b/connector_magento/doc/Makefile new file mode 100644 index 000000000..58156b0cf --- /dev/null +++ b/connector_magento/doc/Makefile @@ -0,0 +1,153 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Connectors.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Connectors.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/Connectors" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Connectors" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/connector_magento/doc/_static/img/LogicSupply_Orange_260x80_transparent.png b/connector_magento/doc/_static/img/LogicSupply_Orange_260x80_transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..046f4ee83de46facbdf15545eb52eaf68e5477df GIT binary patch literal 2451 zcmV;E32gR>P))e2;+W%cOv=hZ+h>L67rd5%Oj+uJc2_y&Vi0c9g)Bz%g7jbM{CI}{gktBoA zrS=KgohdxiSe$N8ylgG*6Gg3Hl#6syZ zN8~VK8H_ya=1@V$Uo2Sxxy<`62@mae<1}yW)^|tmv2HhbAkO9a5 zgb=*1=B`@QA>VA%jj3g0y(nHq1CMsxGWR2G(_t7K{gNYI7GX1nQKq zrEOo;q?n|XSU|Kt5zX4x?p_Bv<*vn#Fkru57k3z~_g zA;;;lAR?ZP$s)O`>HajBCmN&})?^*fvp=ycGFKuj9mZ`0h4 zFfwhB5pAJCrTXfL0$K(d%Aqq;O>AxOfpzc>B7%FYAsFz#H7tWko#q)^7(*r+o6iyi z>aV<}AOq{V7dJ@;z7vA#KzK0Wt1&64ZW+H)xro;@luTC9-UY_BRo%-p^aF%oXb^4L z_csDI`x8qFrgPmAV_Ml&RVCqdQ#)R}LI^6W`x^_LvQ}J2Pk@kR;V!t) zc(@Fo@nWG}iN)uMEVd8Oa2H&8i_=5@eS-1#ye)Wr_Y-QMg+E=?yG|2=svl=D*P+TR zJg{_4iZN~7LU4wJ&(VKC0oOH!OPjK=?$Jdc1XpKm9oJ;ws2s+Q_tQOe4=#gm_yrLF zF2Ywrh&+6zlNPIL&ZPiU$DqxP_mvQQOayW&$$=065CQ-IAOrvaKnMT;fDixx03iSX z073xv$WHwJ79s;c2zw+RKGWMNU$(d}1Ne*-ga8157nT|JGJL>hbmNu7a!4&Hbr>Lc zO4hvugy0rX=4_9tjr8AKyK)9`yQO=+x(u13lG>WFRIHKI(lrB&PwTpO0YWecjjTk* z-3HE$s4^pLEnRbgF|CC+7xk{|7J@2M+wkoN7M~}x*gim=gd@cyx*!C@gTY3HWTowjl^KE5W z$yBc!!%9#C*Y!|x)r8D{fDp_1`i0!fPTpA3bjr6&Sfb$tryXY%h8!Js8aie*y%FNSeQb5ty)A6L}8j{Rkh0GhP z0If<0G+3S;VBukfj?t-$_{yc+>35Q<3wulgM3~o11UfE=Zh5)2A|d1oN-h)y5G`2- z*dtL*H@6!7PL{$gllha4KrvlHXbWg&(~X83<+Ho!q@p>PamPmmBB^r?;z`q|O+~x2 zKrc-A-Hl=y$l=XfMVIEvSEVBY=ZR#jDRUz7A1w2t`}YDuQ1GFJFyo-!S_3v+rK~1% z{UK0a&^%;46-g8LUFLP_U05J>BYN2DNXN8w2imkIVvGZnXtO>UiPNHO?e2A?V;)-A z^i9oW*(VsLjZ8)v2*Ev4Snzs6Taea0fO#suXFCj>3iTt+Nz9+U}A#|3JQ7&7s9UlAdc^W!*9NN9q*hW zvvw22uv_F4ZMd`iJ`a7j%pOlb^e6M36^^_Gm&puA) zi6oa9UrX&tdQcaj1DH!>K(k{KeBR;uV(7kU$-Ta^+_us+vQ;qGC^5K@erqiK&R8On zC6N>e0q6oo5*d6aGoMX;%1v-%urk%OaIbBlJ*6a)Uqf5tgO93R{Xj9@JzFDkQlPwW z&z(d1}2`hhefS6%zKlm3)xHX|?C)0fT*kV3+PQLfHCXF?!XA~cX8i7bIPnG7oA&!jf2 z3xhVUE87-Z2{{4&mc3xE8QhNT8c>64pilLIAu6 zNA%6uT;6cGb{f>Tg_&8#Q}D3}NHG9;;1XFCeaZay3Lpf)cQP1BYXo#&l`QlnCGJ8T zd_?h$g7O#umkR!rE?}OTlopGMfbXDLeDTHSHwWB`;Q==yufLi4CanJj7yw_LUAAvk Rc$5GD002ovPDHLkV1h4iR)7Ei literal 0 HcmV?d00001 diff --git a/connector_magento/doc/_static/img/akretion_logo.png b/connector_magento/doc/_static/img/akretion_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6b298965da47ca3d854154e3c0a3026b501e53e1 GIT binary patch literal 13203 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 m!n+=Xp!Ps8l#=;%{CIwL;?#4u^c?5dJ@(0Y_&5 literal 0 HcmV?d00001 diff --git a/connector_magento/doc/_static/img/c2c_square_baseline_192.jpg b/connector_magento/doc/_static/img/c2c_square_baseline_192.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b3d6b620a04d3202e10c027a99c2a1001b903be GIT binary patch literal 24535 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 literal 0 HcmV?d00001 diff --git a/connector_magento/doc/_static/img/logo-debonix.jpg b/connector_magento/doc/_static/img/logo-debonix.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9986555d3b7db76596b8bb5579212ec5fc082bd9 GIT binary patch literal 29079 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 JiQxZ0^?ya#6zKo} literal 0 HcmV?d00001 diff --git a/connector_magento/doc/_static/img/sync-workflow.png b/connector_magento/doc/_static/img/sync-workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..92552d8456a1ba9e4906b8269970ef94dfed1b9f GIT binary patch literal 83107 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 Yg0GzF + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-7628916-4', 'odoo-magento-connector.com'); + ga('send', 'pageview'); + + +{% endblock %} diff --git a/connector_magento/doc/_themes/.gitignore b/connector_magento/doc/_themes/.gitignore new file mode 100644 index 000000000..66b6e4c2f --- /dev/null +++ b/connector_magento/doc/_themes/.gitignore @@ -0,0 +1,3 @@ +*.pyc +*.pyo +.DS_Store diff --git a/connector_magento/doc/api/api_backend.rst b/connector_magento/doc/api/api_backend.rst new file mode 100644 index 000000000..7b1709023 --- /dev/null +++ b/connector_magento/doc/api/api_backend.rst @@ -0,0 +1,7 @@ +Backend +======= + +.. automodule:: openerp.addons.connector_magento.backend + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_backend_adapter.rst b/connector_magento/doc/api/api_backend_adapter.rst new file mode 100644 index 000000000..c41773530 --- /dev/null +++ b/connector_magento/doc/api/api_backend_adapter.rst @@ -0,0 +1,7 @@ +Backend Adapters +================ + +.. automodule:: openerp.addons.connector_magento.unit.backend_adapter + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_binder.rst b/connector_magento/doc/api/api_binder.rst new file mode 100644 index 000000000..aa788b28f --- /dev/null +++ b/connector_magento/doc/api/api_binder.rst @@ -0,0 +1,7 @@ +Binders +======= + +.. automodule:: openerp.addons.connector_magento.unit.binder + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_connector.rst b/connector_magento/doc/api/api_connector.rst new file mode 100644 index 000000000..791e8bb82 --- /dev/null +++ b/connector_magento/doc/api/api_connector.rst @@ -0,0 +1,7 @@ +Connector +========= + +.. automodule:: openerp.addons.connector_magento.connector + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_consumer.rst b/connector_magento/doc/api/api_consumer.rst new file mode 100644 index 000000000..02cdfeb2b --- /dev/null +++ b/connector_magento/doc/api/api_consumer.rst @@ -0,0 +1,7 @@ +Consumers +========= + +.. automodule:: openerp.addons.connector_magento.consumer + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_delivery.rst b/connector_magento/doc/api/api_delivery.rst new file mode 100644 index 000000000..dc51299e5 --- /dev/null +++ b/connector_magento/doc/api/api_delivery.rst @@ -0,0 +1,7 @@ +Delivery +======== + +.. automodule:: openerp.addons.connector_magento.delivery + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_exception.rst b/connector_magento/doc/api/api_exception.rst new file mode 100644 index 000000000..61ec9c0f9 --- /dev/null +++ b/connector_magento/doc/api/api_exception.rst @@ -0,0 +1,9 @@ +Exceptions +========== + +.. automodule:: openerp.addons.connector_magento.exception + :members: + :undoc-members: + :show-inheritance: + + diff --git a/connector_magento/doc/api/api_invoice.rst b/connector_magento/doc/api/api_invoice.rst new file mode 100644 index 000000000..a6b240788 --- /dev/null +++ b/connector_magento/doc/api/api_invoice.rst @@ -0,0 +1,7 @@ +Invoice +======= + +.. automodule:: openerp.addons.connector_magento.invoice + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_magento_model.rst b/connector_magento/doc/api/api_magento_model.rst new file mode 100644 index 000000000..806913584 --- /dev/null +++ b/connector_magento/doc/api/api_magento_model.rst @@ -0,0 +1,7 @@ +Magento Models +============== + +.. automodule:: openerp.addons.connector_magento.magento_model + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_partner.rst b/connector_magento/doc/api/api_partner.rst new file mode 100644 index 000000000..f5557fc5c --- /dev/null +++ b/connector_magento/doc/api/api_partner.rst @@ -0,0 +1,7 @@ +Partner +======= + +.. automodule:: openerp.addons.connector_magento.partner + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_partner_category.rst b/connector_magento/doc/api/api_partner_category.rst new file mode 100644 index 000000000..614d016cb --- /dev/null +++ b/connector_magento/doc/api/api_partner_category.rst @@ -0,0 +1,7 @@ +Partner Category +================ + +.. automodule:: openerp.addons.connector_magento.partner_category + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_product.rst b/connector_magento/doc/api/api_product.rst new file mode 100644 index 000000000..e1123669e --- /dev/null +++ b/connector_magento/doc/api/api_product.rst @@ -0,0 +1,7 @@ +Product +======= + +.. automodule:: openerp.addons.connector_magento.product + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_product_category.rst b/connector_magento/doc/api/api_product_category.rst new file mode 100644 index 000000000..488b36d70 --- /dev/null +++ b/connector_magento/doc/api/api_product_category.rst @@ -0,0 +1,7 @@ +Product Category +================ + +.. automodule:: openerp.addons.connector_magento.product_category + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_sale.rst b/connector_magento/doc/api/api_sale.rst new file mode 100644 index 000000000..e7a8cfee5 --- /dev/null +++ b/connector_magento/doc/api/api_sale.rst @@ -0,0 +1,7 @@ +Sale +==== + +.. automodule:: openerp.addons.connector_magento.sale + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_stock_picking.rst b/connector_magento/doc/api/api_stock_picking.rst new file mode 100644 index 000000000..32ecac24a --- /dev/null +++ b/connector_magento/doc/api/api_stock_picking.rst @@ -0,0 +1,7 @@ +Stock Picking +============= + +.. automodule:: openerp.addons.connector_magento.stock_picking + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_stock_tracking.rst b/connector_magento/doc/api/api_stock_tracking.rst new file mode 100644 index 000000000..44af25598 --- /dev/null +++ b/connector_magento/doc/api/api_stock_tracking.rst @@ -0,0 +1,7 @@ +Stock Tracking +============== + +.. automodule:: openerp.addons.connector_magento.stock_tracking + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/api/api_synchronizer.rst b/connector_magento/doc/api/api_synchronizer.rst new file mode 100644 index 000000000..5c4375868 --- /dev/null +++ b/connector_magento/doc/api/api_synchronizer.rst @@ -0,0 +1,26 @@ +Synchronizers +============= + +Import +------ + +.. automodule:: openerp.addons.connector_magento.unit.import_synchronizer + :members: + :undoc-members: + :show-inheritance: + +Export +------ + +.. automodule:: openerp.addons.connector_magento.unit.export_synchronizer + :members: + :undoc-members: + :show-inheritance: + +Delete +------ + +.. automodule:: openerp.addons.connector_magento.unit.delete_synchronizer + :members: + :undoc-members: + :show-inheritance: diff --git a/connector_magento/doc/conf.py b/connector_magento/doc/conf.py new file mode 100644 index 000000000..7490f1596 --- /dev/null +++ b/connector_magento/doc/conf.py @@ -0,0 +1,352 @@ +# -*- coding: utf-8 -*- +# +# Connectors documentation build configuration file, created by +# sphinx-quickstart on Mon Feb 4 11:35:44 2013. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys +import os +import sphinx_bootstrap_theme + +sys.path.append(os.path.abspath('_themes')) + +if os.environ.get('TRAVIS_BUILD_DIR') and os.environ.get('VERSION'): + # build from travis + repos_home = os.environ['HOME'] + deps_path = os.path.join(repos_home, 'dependencies') + odoo_folder = 'odoo-8.0' + odoo_root = os.path.join(repos_home, odoo_folder) + build_path = os.environ['TRAVIS_BUILD_DIR'] +else: + # build from a buildout + odoo_root = os.path.abspath('../../../odoo') + deps_path = os.path.abspath('../../..') + build_path = os.path.abspath('../..') + +addons_paths = [] + + +def add_path(*paths): + addons_paths.append( + os.path.join(*paths) + ) + +add_path(odoo_root, 'openerp', 'addons') +add_path(odoo_root, 'addons') +add_path(build_path) + +deps_repos = [repo for repo in os.listdir(deps_path) + if os.path.isdir(os.path.join(deps_path, repo)) and + not repo.startswith('.')] + +for repo in deps_repos: + add_path(deps_path, repo) + +addons = [x for x in os.listdir(build_path) + if not x.startswith(('.', '__')) and + os.path.isdir(os.path.join(build_path, x))] + +# sphinxodoo.ext.autodoc variables +sphinxodoo_root_path = odoo_root +sphinxodoo_addons = addons +sphinxodoo_addons_path = addons_paths +sys.path.append(build_path) + + +# -- General configuration -------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.intersphinx', + 'sphinx.ext.todo', + 'sphinx.ext.viewcode', + 'sphinxodoo.ext.autodoc', + ] + +todo_include_todos = False + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +# source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'Odoo Magento Connector' +copyright = u'2013-2015, Odoo Community Association (OCA)' + +# The version info for the project you're documenting, acts as +# replacement for |version| and |release|, also used in various other +# places throughout the built documents. +# +# The short X.Y version. +version = '' +# The full version, including alpha/beta/rc tags. +release = '' + +# The language for content autogenerated by Sphinx. Refer to +# documentation for a list of supported languages. +# language = None + +# There are two options for replacing |today|: either, you set today to +# some non-false value, then it is used: +# today = '' +# Else, today_fmt is used as the format for a strftime call. +# today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +# default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +# add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +# add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in +# the output. They are ignored by default. +# show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +# modindex_common_prefix = [] + + +# -- Options for HTML output ------------------------------------------ + +# The theme to use for HTML and HTML Help pages. See the documentation +# for a list of builtin themes. +html_theme = 'bootstrap' + +# Theme options are theme-specific and customize the look and feel of a +# theme further. For a list of options available for each theme, see +# the documentation. +html_theme_options = { + # Navigation bar title. (Default: ``project`` value) + 'navbar_title': "Odoo Magento Connector", + + # Tab name for entire site. (Default: "Site") + 'navbar_site_name': "Site", + + # Global TOC depth for "site" navbar tab. (Default: 1) + # Switching to -1 shows all levels. + 'globaltoc_depth': 2, + + # Include hidden TOCs in Site navbar? + # + # Note: If this is "false", you cannot have mixed ``:hidden:`` and + # non-hidden ``toctree`` directives in the same page, or else the + # build will break. + # + # Values: "true" (default) or "false" + 'globaltoc_includehidden': "true", + + # HTML navbar class (Default: "navbar") to attach to
element. + # For black navbar, do "navbar navbar-inverse" + 'navbar_class': "navbar", + + # Fix navigation bar to top of page? + # Values: "true" (default) or "false" + 'navbar_fixed_top': "true", + + # Location of link to source. + # Options are "nav" (default), "footer" or anything else to exclude. + 'source_link_position': "footer", + + # Bootswatch (http://bootswatch.com/) theme. + # + # Options are nothing with "" (default) or the name of a valid theme + # such as "amelia" or "cosmo". + # + # Note that this is served off CDN, so won't be available offline. + 'bootswatch_theme': "united", +} + +# Add any paths that contain custom themes here, relative to this +# directory. +html_theme_path = sphinx_bootstrap_theme.get_html_theme_path() + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +# html_title = None + +# A shorter title for the navigation bar. Default is the same as +# html_title. +# html_short_title = None + +# The name of an image file (relative to this directory) to place at the +# top of the sidebar. +# html_logo = None + +# The name of an image file (within the static path) to use as favicon +# of the docs. This file should be a Windows icon file (.ico) being +# 16x16 or 32x32 pixels large. +# html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) +# here, relative to this directory. They are copied after the builtin +# static files, so a file named "default.css" will overwrite the builtin +# "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page +# bottom, using the given strftime format. +# html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +# html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +# html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names +# to template names. +# html_additional_pages = {} + +# If false, no module index is generated. +# html_domain_indices = True + +# If false, no index is generated. +# html_use_index = True + +# If true, the index is split into individual pages for each letter. +# html_split_index = False + +# If true, links to the reST sources are added to the pages. +# html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default +# is True. +# html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is +# True. +# html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages +# will contain a tag referring to it. The value of this option +# must be the base URL from which the finished HTML is served. +# html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +# html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'openerp-magento-connector-doc' + + +# -- Options for LaTeX output ------------------------------------------ + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # 'preamble': '', +} + +# Grouping the document tree into LaTeX files. List of tuples (source +# start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'openerp-magento-connector.tex', + u'Odoo Magento Connector Documentation', + u'Odoo Community Association (OCA)', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the +# top of the title page. +# latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are +# parts, not chapters. +# latex_use_parts = False + +# If true, show page references after internal links. +# latex_show_pagerefs = False + +# If true, show URL addresses after external links. +# latex_show_urls = False + +# Documents to append as an appendix to all manuals. +# latex_appendices = [] + +# If false, no module index is generated. +# latex_domain_indices = True + + +# -- Options for manual page output ----------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'openerp-magento-connector', + u'Odoo Magento Connector Documentation', + [u'Odoo Community Association (OCA)'], 1) +] + +# If true, show URL addresses after external links. +# man_show_urls = False + + +# -- Options for Texinfo output ---------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ('index', 'Odoo Magento Connector', + u'Odoo Magento Connector Documentation', + u'Odoo Community Association (OCA)', 'Odoo Magento Connector', + 'Connector between Odoo and Magento', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +# texinfo_appendices = [] + +# If false, no module index is generated. +# texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +# texinfo_show_urls = 'footnote' + + +# Example configuration for intersphinx: refer to the Python standard +# library. +intersphinx_mapping = { + 'python': ('http://docs.python.org/2.7', None), + 'openerpweb': ('https://www.odoo.com/documentation/8.0/', None), + 'openerpdev': ('https://www.odoo.com/documentation/8.0/', None), + 'openerpconnector': ('http://www.odoo-connector.com', None), +} diff --git a/connector_magento/doc/core b/connector_magento/doc/core new file mode 100644 index 0000000000000000000000000000000000000000..001ba36441ba6fc903f1172696bd5cf559aceffb GIT binary patch literal 17321984 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⩔q2Vw9X(6 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

Alnxob^ z1n^|vO27jw@RX$3{1-6=@KhamT2iMcs=z0?K%>AXYmQT#Lja%ZTM76e3p_n3HvdIT z0eqSc?7x30_LDPI;4@vIQQ)&Q$4uuCz-Rkb0v>3AXC(oj<2eQJxjOK9UONGNz6yMS z3p5IRq2{>AIRx-*-%7xPEbyG9*e>>*0{9Xg_)@Q(0KQBGzT5>G1-?RaT>&7ibiCp60mTIRx+xzLkIvvA{Pb#deeD6u>v@ z!1KL!0{9jcc!3Kv3Vf^PxXn2P@a?{pfDg66cO=Djr{@&Fcj>?jy>1sVl@T66rSx9tUhj56j0*wNHsX10VhXDS{w-WH-7WnI= z*w%PX0sM^){H@nc0Dl(;Y~JxGU+V&m0)MYLesB%}{G)Fr;3F*XPf4-;>^TMSFFNqA zUONF?7YA(K;wk^l1sVnZU308+4gvg!ZzbR(E%2X7vHj&a1@L+mxFYb{IpB(dIAHUh zR>cM`&_;46^(V^CSE%Mym1_`c@wW<6BlR{ zcvH>M)Hww3X1Q+>baD;>+}XDh@X;2yOHyoIJ*NQPSqJXswG+VIRp1^j z&?sTI{{pz0{3%)MuGR&9Q~a`03YC63HVqGd|*;+13aeyK1c^1 z=(Q8TgW`bA-#k;jDfAEG%9bq)bM*tZh!aTa(;Qfxy#rvM(N0}uDw3E;!xfX!c# zR~+sFjRGH`IgWG=0eqBiCEzg@ctlccBR!`89;E{x?X?rY$HW2eV1P%vK%>CNYL4Ta zLjaHQtpr?bfs2!3EAgBHc&rXQ&TA)t$E(1lF3>3O1kEwgIRx1&PIFW_hX9`BTM2lq1+Gqtt;TZ-;94Dcve!-kPf>wSaDhgF zr)rLA&LMzL^sNLu&H|s56x+$3Qvjc$1E1=(6Ts6|;2AE^DDY{T<8OH z&rFK#EYB%`XX?Obd+h}9EEV`17ibjtT+MNwa|qz`eJcT%THp(kV!P0D3gC-$;Mra~ z0X#z!;W-8Hl{)ZMUONH&4;A=o7ibjt8qIO7 za|qz;d@BJ@w7_$dVw>kV1@QGc@C{x&0eqthe3J__3VgHXnC~0{_!i$vz{gwQ1xc~p z>Ny4QZ94GnUONGNhYEbB3p5IRm*!aL90GWeZzbR|3%ocfw!1y20KP{DzSnCffbUa* zm$*Qq!1rs82b@CyKj>QtIAehyN{a1a&nbW((SaZJ+6mytRN%*5pi$tZn&S!Q5Wr9R zRst@!z)vN`_O#~|!2i^NpYhrW;Ad6fWiHSt@N=5udFK$oFZfmhuCTx_stgZ8s zT8FOqU-q0LDX-{BNgC9uSfM86RR|RC5#v~FCE!X6{HDhwR@hsfQvkoM z11Ak?RlFMq+}_+#z30M@0>7_0K5!03qkhCV7F!88XMsQRm>8JqRM|Q!)jHJsD$gmB z^0A&2e{72vOr3tJCgn4S7){FOnnR3gF+MFp3~8~IfG1ht)gF_G?JLhIfWOv({jn|4 z={Iq};e&*4HLmY8hZxmjGy)bwT5KiYY76{>$HcKwof=!`N3{<1?hkT_r2MQW<(H&R ze^rxGr?G1TToqz~i}5M!n9(f)uC>5_B*o?ratYwSbl~*~oo0hLVDtPeTc7}EwE?cI z7~pci*_hES0-hWKXE#cU%^&1)z}ZGBaJF$$r%mF3%_v89V+~jv;L3^tE&&`fx<$ZK zEbwMYvH62s0=T&j+#;#d&EtU0I97HG4OkoC%8CIl0UR^BMZhOm;H{Hl^9Q*EaBCfS zo1{*+jRQ6#mD%kyU~PaaD+ag(aLniy0Z+BSg-NmbgIof*oetbSsnZ?ffX!HRwu1(& z4RB?}0G9xc8Qmh_X%@J1Qf&SpmjLdn1Mi&FX}36F^R_{@y9V4tbBF;h0UR^BMZhOo z;9Zhp^9Q*E@NPQr?n#~Q5eIDEC&})qacKiwSuwyRfMZ6t2>2umyiZbW{vekC-cJYa zlhkS7IAHU}P_{?|)&{t;Vt`8k$Bb?f@W~eVfTY;`K`sG2KnFf3sndaRz~-H>>>v$T z8{o={0WJX?GrC2@NwN8ZTmpEg4m>QW)8TQz=B>Z%VH&VDz?BsPTmm>|bc=vb zwZKOu#pVxk3E+`B@TjCtkB$R2?{#L6(SWr9uB;f~62LK|TLe7a0*^_G%^&0vz$H5H z*rZO!#Q~eYk;;zOfVBaxtQg=Dz%ip+1U$n6ADNNI)gXX^n&Q8~WwE?cI7~m4XF{4`qe1-)+BPlk2 zkV^pT9~{iiOzJfDgM;Qj%gN5tfVBaxtQg=Dz%ip+1bn6iK0hfoe~?Q6>mMA<0(;GQe{*U~PaaD+ag(aLniy0iR`oFH4HeALJ6i`UeNIS0;5D`@zB92KXNuur|Pz z6$4xXIA(Nyl#g2e|~W{=vcQ^+}z^esFM41ALK8jv3t|;Il38 zElIKYgIoew|KMQuwxmvDKRCFD0lq^6)&{t;Vt`8kFLeE|m4Ihi;6+KX`GZ^nSpVQ) z_MW6pV?Q{!y8*t>1sXjqX#-qYF~G%W)KARl76G4QfgenY%^&0v!1@OVvyUWo8vDV) z-3;(!8n8CNl@$YA0yt)Li-6Cyz)vQ{<_~fSVEu!G*?%T=8vDV)T@CQF8n8CNl@$YA z0yt)Li-6Cwz%L}l<_~fSVEu!GS$}McABYoH><0&TF~G|;;1!xfjA{vBF{H&-0zTgY zzn%pAhUXN(`UeNI{@9iPj{V?ZF9ZCJ#`Uh|5Tja*M*WB(Ew&Qy1s3=Nk4eP#q30C9 z`UeNINrPJ1*bff&G{7HgT%Tx;Po0C&s2?$o#a05o&;oz%F$v%=Jf{HGKRB388q~_h zesHjd0sh*BA3aL1(H!462cuCx-}+VpzQ_W9=P?Q3wVqP|>mMA<>VsMoPV5H4C4!AP*gM&L0aAiXmXau;jk>+UZ90ItB zZzbT1E%3%kv2Efx1+f0X!OEsyI{_T~!NINuxS0zy3fx?Cv~Ugqyt!{B;7cs<7D=&f z={W_k{=vb@mR>sn9Q(n+E(W-j3p5JcT61jU90GV--%7xjTHx)HV%y$x3Sj+%gOzQ( zb^6u6z{Xzv^Xct_t#z?WIz4oR_f^qc}%|KMO{C$F6Vj{V?ZCj;EY z1sVnJsyTLc4guWFw-WH>7Pxy-Y&|@u0MKCxBx=IJlDm-qi&f1>Q|_?Cu-_ zcn{x7z*kt{J(FVV?KuUo{=vb@y}fn3Oeww3?a|qzRzLkKlw7^A4 zvGwzu0$BgxU}b-=odAyg;9v&>e4q<73Oqn_9ON7Vc%W}3;Hxa~prqIi_M8G(|KMQd zpXemcuoPVe{isJ zn%7PM$9`}yJP)7b0*wNntT|3`4gq|sZzbTl7I=D6Y%@Hk0MA zIRx-*-%7yOTi`iKv0dyr1+f0X!OBa$b^jI4e&(j>&JBI+i!M76djTZREq}XoqoB~+? z;9%u^ublvn{or8u#AAUAGzxsH=D5u{1n}*?m4I)uz;`6YcBkhQ!1@OVD;Ik01aRyJ z2hB6B%Ed0wDDd5y;~wV_!1wxA0>0S--a`QVu^${X?|4-H<^qiZ|E@XKIfnrL z!?zOfofi1dq}cxQoB~+?;9xHB+Bx7{><0(UTRgc9T%Zx)Tm#Lqp>sIk+(y2YfbR-{ za}ASXYvef{a8Cc=V6KVRP5{S#aL~M`mD|Jx8U@}|b2N1h0lb-SCE$e?xLHzc%{`|8 z);~Cy+uUm>fMY*6Xx_xjZRrAy0&k@`S~`aS-rBbk@FEM`Dk-+so>Ktp9~{hW>$MZW zu^${X?^@=zcY#KMchDSdoI?N?`c?v7Y=PS*#n#Sq3Sj+%gSj2Ob^)`^80{7G$y_`b; z@8Vkt_#O+qYf@~xc}@YWe{e9jhu2O3$9{0oyb+)4?E;Mg@1;5Rb`Al&k8dU5doA$3 zNwMwcIR&u(!NFW#ublvn{otVan}=LK7ibiCf6dX~IRx+lzLkLQv%m)?#Wuim3Sj+% zgSmlTI{_T~!9nw9Jh_8ipi$sMG{>RNA%F+_RsvpPfrli;Hq>(pVEu!Gx#33O1kEwgIRx}=;D;=5by93K zo>Ktp9~{h0_Sy;H*bfexKbX#)-~x>TPt_dLoI?Pg=vxW+VGDdxQfw!CP64cca4>hO z*G>S(esIwINqlaG3p5IRn&vp&IRx+-zLkICtYL4@qLja%eTM7743w%LRY!`Y?0jz&;FgM$4CxBx=IA}g=k-OLh8U?;Y zb6n~i0{AlDO2Cg<;LDR@yTWq{VEu!GxvRW(0yy@AgXY5}xvO2EQQ&Jd$FKtp9~{ix?zI!Zu^${XUu4SN=>m-c-=#SgI)?yW0bb$)jRN1VIUaBh0sNqECEzD5@Iy(lJ?uFJu>Qfp+@oGQ0UZ0m!9xu2 z<1WxB@KVk3gmVbsCw(gcKV^ZRN{a1i&nbZQ4-V#@@!ARC*bfdKYJiuyK%>CVX^!We zLjb?vTM77S3;beIY%h6E0sON1(SzJ8UONH2Jno|hgAMQs7ibjtRn765a|qzqeJcU~ z(*nPd6x*AgQvkoE1HbLH6Tt7p0S__2@47&v!0%~}_nkukf8bjQ_!$fQVNz@#c}@Ym zQU_k;wG+S}#{q|H_!Ads6!=rk@tJc7;Lm+40Y7VjzetMhOV25QSL?uEdF=%7*Kxq% zKD@>S8U_AFbA0O@0{A=MO2Er3@Y0lZEJ{=;i0fd7mG4$s4Xxj>`9>lH^;;2aLPs=&7r@be*X z)dmT%RWuC%Hexj-YpRgE=A6Xy`X8~auQe!&87k`&vf zo>Krf)qywj+6mxhalqzUx~jPgGz#28b8PM$0(cAGO298#;4PD4+sbna;Fdb@)?PaS z+$s*(+$~kLc7aBLx6vHiI)?z>&bJcqOBQ(hq}X=woC3Iw4qWK96TofbfX)4IRXZ1G z6u7R;i32uIJgU07K%>ArYmRQtA%MI4 zRsw#-0{2LYt*7S{z`bMxxb^>_cIAHVCvT8pUXcV}Q=IHAj0=USx67UKO+%GA%{XM4u?ymzM;I$LL z2gU)L=h9UJT%b|lgEYrL=Mcbyd@BLJYJm?ma0a&K%>B;G{@1-A%KtZ ztpxnK1sstxPTeYFwaE;9AWw**OI86yHj~Z&~0Il46_cIR)@E9r#4Aod7;54%ocoQFXElGzxr* z<~Y?k1n_jS> zjRQ9CT2{?-fkuI^*Bm!EhXB6Ow-WIC7Wk&5*lzZm0(ia-e2dpk056CGHgD5b-Rc63 z0^g=NZg&m=e1~r(;14YDok_9XR0jsrIDOIO|P0*wOSqdD$%4gq|h zZzbRlE%1`0*zWh70{8(P_(89o0DedXe%J*X1%5Ny4Q z6FTsdUONH&lnVT`3p5J+PtEa+a|qyPeJcU4w7|=fVtdYW3gG8;;1|4h0{BH0_$3!; z6!>M$@rrW@;N`xRfLB@I6-lwZ>Ny4QYdY}jUONH&MjUW>(0bDa8U=n!bG+>w0{9)@ zO28jm;CGW^d(U$U;P-Xl54?5)_`^8h@U--i3p5J6Qgf_w4gvhJZzbSQEbu2uv3=?} z1@LD&@aJAT0sKWAaCqVIr3*9)yjpX7_xA92+@@1D@2-w-WFd zA@HO|NwGEdoC3Is4!p6~P5^JB0&nU9jRH5-9Gf|Z0B+`63HVD3+&n3^7M@c8Z>|Gx z;k6UMTdKfYxj>`9Ej7p1&LMzX`Bnm6ZGl@S#kP&-6u{f+z}tE41n~AM@D47}C~zCi zQRo~3xUFv`;IAxjyQJ9KdrkqoqYm7`YbSs^s=zzBK%>B&G)HIW5Wro0D*=CPfx9Nf zwzKCHz}m-c_tG4@IEMh<)wdGx8VkHzQf#|>P651!4!oz=P5}2- zf%kHOMuGR%9Q!zj0N&TP67V+`c)z6B`gl$O+*b!K^4baDek$<(F3>1&f6Z}#a|qxA zeJcTfYk>zO#deVA6u<*@;6YwH0er9ue25D)3Vf*M80;JZc!+N$;O{K((4^Rgc}@X5 zTn9ePYbSsYSAmakfkuIk)Eq}ShX5YoTM2lr1s<6c+bGW|fREOJkMY_G;L$4Zu`bXk z@Nt@BjB^O!V&6)@-&^34q}axKP60el2OjUW6Tqb^@B|lV6nLWMINmt~aG7r<;2$h- zCMmXZ&nbW_bl|MlP5@V`z&RIa6u3%rOmYqZTJypI{|!x z3Ov;X8U>!FIZkvA0eq5gCE%Yd@X1NBo#HtK@TofRbg!KNo}mJt<^qiZpRPI1a1H@{ zrf((SpDplNNwLlJoC5f49e9@4P5_^y0-x&wjRK#iInH+u0epdPCE#By@P$dSUF10h z@N6A;j@M2AU#tRO;sT8VU#dASa}EJ~xo;)lUoG$zNwHn&IR)@lI`BWdb^`cn75Ew# zXcYKb&2gP`2;jNCm4NFk@VunhuJ@b*_y!&LMz5U!zDWhX*##N}p07D>aSj2zz_$|c zZx;C0q}XoroC5fE9rzBfodCX51-{D#8Uad@H0B_vtBy^yi5gt&IK9;eqM9D;2Z+@Mc+!me_G&| zl45(=a|+;Bbl~M)I{~~x1%A~98U=n$bG+^x0{9KzO2B_v;5Uq$u()SC3E znv~BROf)HKsStpg_wYEAkk4%ocQHR)RyXcYK6 z&9T-w1h5##Vk-e}V1a+|m;~^To>Kt-qyr}nYEAkj4%iI1P5RY^9|f+{9KSgSqftL% z9E+_4+`s~_^OywiAD&YH|EU8f4QfqVuK`yFF8l~^b%EyCz&RK#c&S>9W3iQhHw=NR zH}sesaP>x>(*ajERDr9L2DPditH4cM_)*}EHOD5-!Ds|5#h>z|jxPKta0kuN(K#56 zfWM;r6!Jbn957B{>2DPe(sldZs_)*})G{@o2!Dz%J z#8i<7k(7@7|k)-IT($A#W)sQ33xLLe4NK5 zfX8@F0bHyDCk<*6&APb1)hKi*YQr67c30 z_;innfvL_Gw$2%99qRo|&nc2}mYx)UY>O96ot~{GWtKyXCgmK>Ax5n|nz zfS1FZ0p-K=$69Z%93R$K`EvE^HQYY9eNb6jI*~feZ^!<8dtqU1^)wTgYiIk*VC z6_d>h7k=zd?SicUZCR@1O z90NO*!|j2};dV;paQ|ihMEE-dcK@exSg%81*Ox2X?aHkuyPfWh<3TXhmPdD=dg6{0 zcNbEVkkQ>MPRy3F)$n*89ta z{)GNQzlg8C|7shr=%3?^ERX!oPCUeCI0D+35;+CZOZ$L5Ci7xY6p#HMQnAx$}_fpoIF_xzZkojgF)BHD%X50&|=la@e7vf5>5j z!~Ji_2)q3cIr0FC&iIcC>km0>80yg}lKP`|CA5TKZ_@!yds9QxFZDCIqPDF5d}g=j znxIj;G2=F;t~U?HhVAzq*KJ~-aY4{%oLydH-)_1MW|Z4FME!7oo>4wF^f$4m;b6ue z8#W2+hgxdOWBUYjJPjw>Z^LOwX)PTp%FX#DoF>#(?cJkCm*6=2Bd8vSvi%X%aM}I{ z#+OX7_3e+~e|!5O)ukolDU(A^s4lCeBj=DBdx0~gwz||DNDrJ^RgtSM4aS#MSDH(O ziQ!4xoIe7(0&?dOyEgQH={yp--r}0vZvcOIexU0+p7{JTZgMqMrHhZ_%}FM_&I_;0 zrtGp;xF68Z-6z8kWgU`zF;357<;M z+`*|#2duDNc)*yl>+a}p%GeUxG5NY~bayI;{TREcUti9eEu6~PvDP0cQ~tW_7)%IG zEUQAl=9j5Y8rIJsZql$kwW=)ilfq9$s-H27r}*hG5|&9re<{kOVL3OIc5kXr8kWnm zmX9~t#$S7UHY^)8<*606zENAY z%b!|dmrok@XB2)~p>#g4sG${V+S_=HqKx`Bp8WpDRonVTP5mk3>2yQ=k%sx5Sdk0k zGiv-3$Juy{hUG~plkONyuAR`WcQ7reD61^3q3wvb$G_9@r4?lq=6~75_gNLCm0_QD z`R=-v7sUH9mu=i!a>tR1UW7vDHSUMw&2P^wH9PzNtCg?I^ZWgG zk5i}n?mPPAK7E3KHqCIF)Yj^OFm&I!d)HpnNjvzbX6%nk*Ng~%6hoU2-7kC|fNH^> zRr?P&&j)%}^@}L`Q%y6FW+2T#nt?O}X$H~^q!~yvkY*swK$?Lx18D}*45S%IGmvH= z%|M!gGy`b{(hQ^-NHdUTAk9FUfiweY2GR_q8AvmbW+2T#nt?O}X$H~^q!~yvkY*sw zK$?Lx18D}*45S%IGmvH=%|M!gGy`b{(hQ^-NHdUTAk9FUfiweY2GR_q8AvmbW+2T# znt?O}X$H~^q!~yvkY*swK$?Lx18D}*45S%IGmvH=%|M!gGy`b{(hQ^-NHdUTAk9FU zfiweY2GR_q8AvmbW+2T#nt?O}X$H~^q!~yvkY*swK$?Lx18D}*45S%IGmvH=%|M!g zGy`b{(hQ^-NHdUTAk9FUfiweY2GR_q8AvmbW+2T#nt?O}X$H~^q!~yvkY*swK$?Lx z18D}*45S%IGmvH=%|M!gGy`b{(hQ^-NHdUTAk9FUfiweY2GR_q8AvmbW+2T#nt?O} zX$H~^q!~yvkY*swK$?Lx18D}*45S%IGmvH=%|M!gGy`b{(hQ^-NHdUTAk9FUfiweY z2GR_q8AvmbW+2T#nt?O}X$H~^q!~yvkY*swK$?Lx18D}*45S%IGmvH=%|M!gGy`b{ z(hQ^-NHdUTAk9FUfiweY2GR_q8AvmbW+2T#nt?O}X$H~^q!~yvkY*swK$?Lx18D}* z45S%IGmvH=%|M!gGy`b{(hQ^-NHdUTAk9FUfiweY2GR_q8AvmbW+2T#nt?O}X$H~^ zq!~yvkY*swK$?O7dos|8LhVI!ADT}u2!atC1i_IFf}q=mL2wGqi)sFz<|8%=f)i=J zfaV8iZr(5mu4^0wJ2we}=V{(!;~?lw^HDVKzDW>VNb@5!ub{czra{ny=KX0tg67j` zzKG^0XnvXIH)w9$Gzhk&`7oN#r}<)<&D53V9^o&F30e>|4}WoaSJ-!l?kVc+jonvbD5NAn3ZpF#5+nlGXG3Yu@Dc?-(P5Sk~^Y^I?!4-bDiJsjnNfD%K~ z2$V-b3xZbRujA<739uDI$3n+LS<2`~ISR~~McMewG|5U(1Dy;l2(}7;O+)!4=qb?Y z(9@s=0j+eJX3{(>{AD@K&vQ{W%opJIMNpFqGjUwS_|5sb$~bAd+DdRObT0II=#9{u zp|?QIdS=!;V7rI(5t?72`CXd7qj@8&oBQauneMj|JP0*>ye=MtZ7K9A(&zB|pU`Ka z+~x(8UxISpR-pVE^bP1+P_tal^#^488upc>ALBRcrzn38HQUT;{N^~mL7A8L1C`go z_7n6MXdP6t{|VcA_91T#pv=_>*r-&QDZ4Q&nG7TT7yGtIlwyg$tY zX*N@PXb0#{(1Ku_(BBp1ZqOdkUQn*T2bKH4)*HGvbYCdfEkc?5H~{4VP;PfH%7;R^ zpW#$4f$ebUkwS&(23A8XgM?s%|TB?`x=xdLr;KCgPsIE z1v(vSj#r1HkBiB6CC&3_zJccXG~Y(^LYnWR`4O6*r1=?|U!wUnnj6qzqoX}^1ea3T zOqWAB&;LOA8t8SZr}=qPo_ztzyf2z#*qyLlfVQU3V)}g#?7WNzsGLQehv4IV z=`oa-LV3AQqs(!e_@0C91t{;Eub{jF$}DeEc`a;jL*IqI5B(6j68bUpQ|RZ=FQH#S z*Fe98a=bsF{1fySXdU!-=pWF(pg80Q1wrG0&ygEpT{eO?fo=kA3T*~$0o?++6?AK8 zYv{Jn?V)X;ZK3UqlU&|RUsL-&O41>Fa_AG9yDAGAO8Kq%*C z5Xy%@2SbNKheHpC9tk}S+g>S^voxPT^GP(HL-TnwUqJK4G+##Z4K&ZE`D2<}9(5s=>Lgzxw@rSP!Zi0>XF|$wIMz&{QzXN&~bP@D!=)KS-&F!4=q6d4WJxLBb1v!H-R>VHiNc+nsq+b z{6kYq*jhoifo=!g0a^%c2jzXHBg%a4>`LW>VCx3$0qq6d6}mfgPv~CIeW3e6`$GFc z`$G?eavlbudhSXTfdWZAone=-W&DX*< z6UzJOc~rg(whN#aLFYg(fpVKGP`(O!b)J7N%Gc-F`CNSq?B?3v90$x~jzPR$n8oDO zOx$h>m6yTx0Q6zfrTG0Q)Z~PZJ5R#)H1wIgy3eEhBJ^eGa_Fm2(VHiPoD#1<%T1>G9j8p_9c-geu--WJ*(+5x%~v@^6Tl+QzEo8OIW`_nv{ z=HqA{OS75wfcA#&4c!;o2U-N>>%s$29snH(Js5f@bO>}9^f2fV(4(Lup+`e`+vS`W z!_NCoDU~O|HW69|Er({IIab;y%v6K&WatUdY0#6Pyj`71<#T90kLHVLzKrIpX*SbL zs5zeVF@&!JE`X2Ab5On{&wd5US3!BX*K!$pJ@iKC&Cpw*w?c1+-U(d@vc$rB^s@ z0NoJU5ZV~JF?3VtX3*wPKId&k<+iYG4Q&nG7P>vO4U~^j?NROk-3i(m+7;Rj+5^hZ z^mavg57IvP-5YA2qwFJobG)qk!)KoNnP~vZ1EB{)4}}ha4uc*B<^GPP@)(-UHZ`8K zoaQXeQ(-g9C^rAlG?r}Up4v=&J~HRFiDWlZ8Ixt&w`!}JqLOol=D7^Vw*#@8)3f$dKvTz=vC0Gq1Qs^La&GN^QW6pUO;*` ze%}VY19}&95tN^`-iz`QC?98^r1A$ee?;>tnm?iWGn&7qxnaW~*oy^gSrI=lt`rme;GfH#E~1sJ|M@*BIZR{2lZM(m(L~ zC+IKGI_U3EzTfx@ z!)P8&^Kmqn(fkw5N75tsa+=SzkK%*&WHVC-=uXhi(5}#KP=3D3d1M`Ly9uwu_M*B6 zqW(V6zNGzV=JmkZAAT;IeP$qRe2y^trJ1=7@3-a}^+>8al4d@?nCBSAZl0V`4d82TynbLf}Qub@08@-511p+7+RT4RGoL9h+Yg*2Z>^KCRgNb@r^e@gQ= zG;d1#T^E{nqj@Oy!Hvk?lx8zEf;NHj^*irh&0shC!L zM=B4ZxtQiDG*745OvZ1njd!MUcbfad&i(a7c{kF1X=eK#u$w;2e!Mrzd=J_O?FNXrBLYl#k5w8-}A{8x1`U%G>F9Drab}hJ6C`c&OnwQw6jV zS_S18O&!C_$ET_ApG3<0&?&HS{HLLO2J|fG+0b*Kyo`&ed>PGiVV?uN1j?~qf$~+* ztD)CIxxX8!JfCJ}Hpd+Py#RGN4|h`eKG+sQ7enuX@_o+zDD(4$hf#ivbSZvwE}lgB zX(%7-%(^qnev#(aX#N2HS4eq1uYis7`6iX$fz9NOIp2eg_lcEM{unlno%e^&VgC~P zwW!PM!)%{F(EJz84YB{4W&J|s-)S~e9hCe117(ht9{Yz=15)1Z&9gY(_8Y^$F_hO` zb1Ju|xg+dblD4FIdz9JU3gvB}=A6j)+HGKK3pM+fnM`b)|4#7n{c$%cn|;tshNUO` zyX4jDP31u}9|HS6r2X)FKWJYl?-%`1J`j2kl%MhNc0Cw&zP22W^5Ia<{RplHJqCI# zbPTivIu2S2od_+1w#Rj0C6!NxtqNKVt%Xj3PKENZn~!m)!af6fI`mBFOz12q-=m$6 z@`cdZ(2Jp$LNAA23H=B38Yqu_E}-(0G(Si4a+=?y`8}Gypn20KbY7v^Ot(?lOm{#R zl0Jmri=p>G?}OeCHSKt8>k-%gJ>);B{48vIUC#O<+4)-SWz;d(f@XRZ<=3J7 z9M-(MVeU0dJ8o;XBeT4ZPkZ=?A>n(wFCn$6T7%IAbZ zR31w6k+2^E9Sr5?V#85BoYi(0j6iu5)SO57*l&IplYK0F=KOD_@hJ1PaT%2>VJqjl zRFBUoRj^ec)s!o>O2Nr z3Vjm#H1rwhGAQ@;CY4vwZ0^ZEBmI(QvtNHj`UB0s(_BFBzO|#-Oz%+nJ(|tL$Ak}1 z{s?-Cb%$)`c*0!fIX53)_}H-qZN7!Bg>svpQ2qs42jww^KdH>`hpmT?k9`dg^G47{ z(2YsA#P3a^n?ajHH;3}G*_J4`f^Gxd4!Q%h5X#R+cSN}(v=g)obZ2OHXiw-a(EpFU zFM*G%s{VfsAW#HKL1YnmO@Sn(SzBluC`?;gTIdqfQjoS}CYhIH+R4mxmL{nMhO)>e z)c#cvMTfcpg4T+Ph(E_7$|4wx3L-xp>y8VhiUKP9&$;KEH*ap~muE1z#x@JWkj?=*7jBd(_JjyTuz?;Dxk%=8wfGM8raxo)9Mk8SzQFXCOmj?k zGW{)694E_|-ZeJ=4p9Uc zm+|La91qjtCHs$1mRJ{l^n~k+94`Ikm)X4y=!5+G0j6JPD)=8_x2)@J2lo%)ejM&6 z;eHBkyuQa2`vQ?M)-zsy^`FL<`13~`SNhLq!Tk%kb8sIFd)beL8?T>pJS;n2|I6+W z{1$!L$$q~B`ZE9i1Jge-{WH_QGJT1u%%%R$?pK)pi|K1j|IPHjOy6WWhH)Oi^dP44 zoP8{~$Ftu%nI6G(98*bi47)$YFnupmld0I;Q^XDQbpBn(RO-E+-BQOb z;GW8UqGxBadpgrrre`xfhpCV0ld5Lmc`3W+F`du!0;UU@E@s-sw4JH+dG`Xpi^Y%W z3Z|==`hmvzcPG;z({84{Ojk1vGmS8fF%>x`*}abG0MqqMH!wwcU&+5^UEykWU(57^ zOmAR%6VnedmHufnxF2G_j{*HW+}qgwaiDkc?@utjlj*0K$~fe+;C_nhLF9Nh$GMm3 zeN4Z^bSqP_TMw}N>r5YHD(mOS9@{hW$24-oPv!T0h>x;)lG8oL6vM?H;BU$A#}F=9 zpW(RDk3GxopELah)Bk1qE2cYv{+ECMmg(=A{*kG?2k=*L|AYNrV!9isU=aFG4ttg9 z>r9c4#CcQv4#yI~K5nM6M(50HEQh_5=@CrFF&)oTc;me8IPj}w{}Y(Lhv|EnnoO&i zp2GArrmbv8P6zi4_N!;w$h4X16sBh|oyK%J^Eiv$=K!70zkN(+Gd+*#Jf@QW1?*nP zbTQL5rjqU=a9_cG7c+f7(-lltG4%so!@oP32AOs<#ri@!?5vAE4vR8fYsaOv)fBt? znGQ1D095R(^hIe7+sO19rq?mOp6QKDMIN`XdlOUP`w@13jOp!6?_hc-(1-Z@&c7dID*FF0yZ?u2mg#n;-(&iHrjIdwf~n;7 zBXEnZ|CqzXO|8lM?@7RufF}V@0-gjs33w9te^&xkcORvmPVM|i^nHJa1?dAmdxLuI zYRdy_mHWVD9V&eDug+8M<@eA|z8jk_QEt8D2OslP{BRi4w(q{!HN4HhooFymTXa<$ z=BHm5A4a>LwoG;BUv)uh((mK2X7O~ND}SBexchFr5*`H@okj5I@k_bibvx|}+rsiF z72gXll)%cbzWO-UNA*8RKPJ^a{GKUyZg{b3>|#})r!TBl`nIh?@@<|>cpfUk|KaaF zpk5;!&-!189`?AtYwZEwU-Uo!-Msx;SN+xF>+Ttx|MnvJ>+yB>OiupsN zyV^tlxbX_X6D@=%pj@zLvB}-OaUW3Cw;O5iu~wVN$0k77UBPJFX_j2 zF8^wdzq&~LBH5Jf9b1NP48eZcJIbr?#3h73ULicCfPd$Y)IQf2$^Y_KA5r?ek;AX3 zrG>tGUz*X5{pq{jN&RQ_>T$}Q{>hBHzj=TCk-J%6t};KMUTfY_qOM#tWTxlk9PR|#zHkdon1u#rtY||EB5$( z5A57fp1s=k*i&EqydUKKB#kG(`c9Jfy)3T>(yeNDNcG3v?Z?;uvU)Ul1`}no-ea}&+a-% z#ox*CpF1vfB=Vch_Uq?CdYk3NGWor5`|bBlxG;M}dy(;|j$e1@?xwdOI*Zs>J^pXT zQU9{L2)^I>j>jWAjLqE}_iFsB=eNJzFHioP;$_;us-J#Dr60@b z5132x7|-ql0~6GE_5^kxWF6*z0p{P^%jCcE;9s5lwWm)vwwKwz=<;}>hSnc0J%h%p z8yjy|^T&-me>~#Q0o9*%mf8M~nnmTC#N`=ZM>)2zThITP$KS1v>e>BO(hoiS*ssxi z;shRV>EXw*JX?$K*W>H%_sl)%6WBks6zT8u_$Q}6qv~@u=VxB@Rpq{b-4hnj#<1~Y z#;Eb3o_^w;CoB6KXL+7-)lc62^i_4n?jqy=alK^EcJus3=eMWs5B~X|*#plxdu$8m zH+c-b1=e0fehoLA@{6(1o;Nbyxz+#s8lIE4?d7zxPfhO{r}X#IBI#S6`rfk8gNI(+ z&iPHDqg0F&ipb}T8T2+@XAyqW>i(>@IBjM;(>edu9Dl~)G(L>8`|$@>spEv=qhxO; zew6fk^%7cN^W8)1dt+HYbDdOQn~UJz)A}kEe}3Ipl>Tkx{BC~v0RM%38;%@bramux zYJxiYY8%UQ(G8PTd*9A(J^v5g+DP+nUeDCS-*?n^!f4;Oojc$AdEc>@ z>lv5M9D4fNxiG)}56$07<#)*IkA8Q@qQj2dA@l#bTh)5Pjw15#f9>*jo*Rbo4C~jX zTfhAyEdTZ*?YUI`zrXQfKc?SVB>jgEr;TS@cs|-YNb65`6w$ZUb!6YS6baYy^s&9Z zw@Ccxm`gv2XASINdmWqWSNgE6Nc{NMXnyn%hbQV@Qu?v8h&**Xy1SqA+s^z3`kp%x z*TXlLsqZ>J-F^9l7v|#pu9Nv)@zdATd|~%q;@$YJWvYEX!FaF!FzLsZz3i_)ICEp? z*ZhF5$o%jI?vHj9sSmxpH~*DR`54dk>qB=QrJ_7vX8KJ>QTevBK7P3QWTg)~%S^B1 z*;n_+>pqq~`OC+=XUAU3SI_@bY+qmG^2}}j=K!|Ps(-jYf6>#Aw)^EX*DL!RFEjsp z$80?DjqRrzReL$V*;oAAQlw9>7tx0YIJ}D2Pd{}l+56r6eCq2nsXrgj;roiGRQhjU z`|Rsae(mKWcNDR|-}&9D-{5*f^`G3Iua)Ajhkx&Pab+J)D6@QbeP@wcZ{1O3Joxz6 zzODMJ_$#EJPgq}n3dd{JW$MdQV?L_ppDi5!>3Tw3T?F6If}3f*h~xiw%+V^rq$2U3 zk@*0J|6~mHU#&&r>+;%H_b)jA*`t(Sj`>}{{C>^u_A>eZ*7{`?+LQ5Rj!*w^eC_-G z1M%C-tWRBDU-;lLD}K26up_J49{lC~yVbVuPUiR5*9QK$Xf@ckBK?cbPj|mOm*zju z-;x}a@t@AWl>4>Aues$%5Gl^~|Mi2GO$)qd-AfzyvOIczZ~m9Yzn7L-zg3sgdO~NB z_y^uX&%ai4_(5+F|9Fx3I-WziX}+<(%=i~KB~N|@n6wueFI7#r>WCXGnD4PZ9C0j- z-!?M;BU|W%og2%{PsjT(uP<*Y@;pwDue;wJr~YI!=YQOL$$baA59IZP&3oBC^!#-9 z$xnAFd%a~Z%RiCv-dkq+({|8!YFnA{>(+l);d`je_(xi@0(jV*7+VE(n2{PgmlbJ+xStn!XB`T6IsSL4HN zMV?2@`P(G5UuI*G^}V_Aq^iFiMe6VT-L!tcvrIgCdG^)4j$S@ z{>}US(4Xz4y*=X4PxrhR##bAe|MGWC`qmddGTGQ&W_jN~p5`OZ7m;77@~?XRP&K}; z;_;InzhfSa*LD`+ABdQ0{_|py@Nab;(SI)VubZEu=V8IkzftwQyGZ=*<#f8$>qWwQ zultjl|HgT|`tm#I`SfmHzt-{h{FcVoRYk(bzl+A(V>vwX#$r{T@$8QNzV<6>yi!Cy zYaa@#@|;kFzmBJrTiy%U!sFc#Kfk}@qx8IRU>({2YR+#kGE3pTW1jndjh=aZkL0LT*H zcI*}wfv_X}BKI&iuYRjq2wFUa!~j-Z1a`?WcZq#gVf){^P&AMXg8eWcN*z zXuY?k%=)>dmGWyX5`WVj?@;Sivx}5R$M?ufG~R!r$o%D_50QS(E|TAEi)sC+o%6eW z9>u?a!0O8D)BJHnKetP&T z+dGdBzj?@e$Fsiun4h0M#QEv*C(ilj{N3QWqlo_M@%PmI^EVz*`u0ST{B?dWY(7TC ze||6Jk=uE?8qaMhvOc_%=PS=Mp5L7I^zwVJ{OD1;S)YF!>Hf#6Zs?DS?05bBYO-%T zIsK1cq4D3wBJ%qtw}%(YEWa*~Qtrz$e;)Y5!KWMTtKIh}ynF$Te|GbF-|o%Nti|>D z&NAnFue^AQs*l$h|EHdMdD^27Hy^o;_3K|>r}=0VuMfWZvzOHVmdz}W*Ip$39?Rjc zKlHNVH@?Vz_fqBE)A01o2lS);7+<754>+Id^Mo?-yrbtN{QQlvh0AyFlFs|E{cK@* z>?uAy{yPt#{+rKM#`Yro_7v|86RuG9^a9SmDYQ-DZ!dypBFk@kneFqmDb$}_T7+Ni z#T_dDP7Z(J^njYLZYguVq?fn;V46>_E|Q-fe_!2GpFLH{E54udJL@~I{LiX;UmCN$ z$okh^XVVMGJ9&Pgm+#yfdfvXiOuVz7rT%wgnep}f_SC)Lwr6fS2JFvn*6$0Brswfh zJinR7`y*~F6VKw82F=?#z@BmXB}Y>Ky1C5sdx~F=zx>NI9=wC|oAFng@7>GeyGt4= z#l0N<{)_!z`AWyBM!ZP<>ik!}dGEY`foGi8YgRo={Ygui^Fcr3+qReT2)>k2$Gvp& zc+>i_ulvv_jE{JIsQYw6{Lo(VUwts`-0>+@%CJL1pD-7Js(3#tCA`2CWBXQ;k9i-f?fe+Tows{d9s-;Oh$jo+aDshY<_fBw+FUc>iGX76SH9k}L@vEy)lQlz{(KHYuO zBW%BlJdgd*n=9XaZ2*7FmDO)8BRU(Q1FocE+=1%~e+&zOcq< z=l2El_|Ge)m3emHKSnjw158?__RIW%B!Sl=OLQnelZzqwRk1k;&i3 z{hK?veBb=h>)(70GTB&UeePRPD)0C*@&C`WkE!R|yNk$AFVA<6?rfRaG}&k=GQNC- z`_Jkk`9J!Fr+@V|STESg{lOvp{BRP-|G`;Q|1Cw*>v&4JfB1jSpz${Id+HmXAp6A6 zhoAm8jR$9sQhufI{FLqW1$&v_&;Lbu+sjPdvK zj;dyT`rJEzd*fj<&mLP{#NL%E-*0&Qzq$y%-`#qhdcHrK-v|BuFK&A7DPUT~^XET& z<4QH&k8}Dz9!dJJz6d`Z&!2xm>vm+YuGVcM{aES|kPlZuRRXKcj))N4{?V%dedF;k&Sr< z*1wzIrubfBe7C*@_-IIFH;1EL>`U)7*1u1cw-4WDR_2dC3V(>N+dsYi;`?d(mHy5g zYQN^86>q=JyxrO_&Zms&EH93nlk#OMBR?l5lpnk@p)Q2Nub{FIoXzVZzgHPwdf^$P zD!*P$4hRDA$))g#gXz0n@QwQq_ir2bfBz<*3lW&dx!}t_%I){k!$wtplBbjE?L)WE z$GhMg68U}m?6)O8zv#*0(bYev+~oJ($gk>07gl`y?0{;(QNi%BC#Mg53&TZz zTcwfdux&d=`O z`Yl)gt`~e;_AfrAe=?b49dK*Ee-wPXMtA+7>5bv*8czLF@+$+MF@wgd>5T_ge0<<& zD)d>KGVmS3_>A47E5Ei;lHWLy-w8AKtNgI5(C0@JT>6hD(Z7@4dVJL`_%eT_@pIZ5 zUHj)3y>Tj?mA+t)$>7jDSU47+sgRTODaGAD22~WenTR^>-K;B>hoVW`CY>8%=g~P+ZSj5=GK03 zzrB9#V)i0f{kq97 zCiVNxw;rFH{5FaFzP*3(xy|2BacLhh>Bm1my5sw;Qf`OAaM~BQ^#eD2LsGxd%C`>( zRM+(bH+;1szq?0QeoicIzuo3-uKe6|&goaK{$&N zW&hmpnMaWwO()-a`{#zQP0IPj{cB&`?4KLH>jmF^`xjri`WIt-zMDo@|L&G@I}~tl z^lz)!f&RCr{%w+S-oJnAw_N@63%)PyUwm%;hgs-){EB4c~Mr=QsDSeJK~;F45zSM^=3O$|*;;{?|=@ zZ8E;PVsz{GdZ`x&s8ao}8@^4Ve^-qzJ_jtaHEW*2-zg73+< zzJ6O=@Qpi~yg~IGC0$qf{-c!q-0;Ojejj@4 z+lL#zt%C1e>xMm#ae4=T z{dYX!`@v}ypI`0`zVz=|em{Jh;`=wt@5lQW-@ddnFRdp5PXe9|O{ z0Z#&+1Uw0N67VG8Nx+kUCxQRpB`|cbPpyZZs|g|!3|o!sQi=q+lU7^{e>*u3a)805 zU)-~R?`$GX_bpWG`MQ6G{UJ(4t~J0Fwb5);m0_5(5aMb>y~L1UB^cJ zD6{6NQ{ex|*GTw{tK8*pvj51OONYu*e``zOIS_gLQ%f>&;+M!GXL0NL;~ORX!e6I( z{AcJv!`x2%I!=EP`KR|A{xgT+b$TG)k??03C+faa|C>I$zx02a6Rzv;k?uXw#+I2w$JS^`OhecUu=LgqTYTFgFxJ7EdKubMHPL{EAmhO z_kGPx(>j(#dwRmw#i2+r+V6y^ehdD;!-=;hebpE67 z^HeWGOowI09_FVg{?GvNkFh()ZVmsEm=$64#D5?{-$z4sBjNX5L;Pn!yxDLIe&f@H z_>F5Rp2^h56#2Vdk4gUb5}qu_Z(_HGe?cUaWc-v*mg6CBCw|Gx#>pOM1I63+KQ4cc zAj;oZPken>lU&EKo0AVCX^uBNN^;Dy+sAGV|D13%A?l<0{Wgx5of zEY~lIoCse=;&Z%R_fvQq$4fKKaQY$6$GDEuzoW3fl>(Ym^Ll}PTRERBQ;FxKB7di! zEob&T7U*$si+}e0gu|I;G=FRIU)mcFMb<3no;wf=M1oeZAggll<0oLbSe!F}``^?+$-`&9C|;s>wMxH0PJ|%_&=8a{w1axw}9fA zw{kmX3Q1fq^Ky!3+)R4t6Z-P$3ZITY5Kmak0zKhS#4<3yEXOw;SJ+CL$^K9zVa_zW zLt&V7)pkW=gSBxh5Kabq5_OZ!>UFK_0^x@4R5%<9Bzw)7Gbfrg)n)12 zuOfdG6dvw>DBL3FU9%{@1%5pa|MbW6@(1rxzcl&J3I>;gEUh5aK|;^Wi66&8&T-DT zC8QU4M6|R08b92x?U(hxEn%gCQ7D65gbd>wVmh#!^l$52l6!g?(Op-NzNR_cmnQ!h zQ{zeszn;U5-xapsaU8x$(m&;1eqVz4W;kDSY+*lPG9SAD@I&N}?LwD-hVhvYZvxz+ zSH}0|*?Oqj6X*M&;7<|`NaA{#7g4xR;$21VCZ?MH%z-wTv>f7pO!5Klf*&&)W;U9!H;s3%a${HoD6gV+~V(hv{3&y`ALq`|4!}SNR2H249DMe4aM8a?)jWv!%y=U z)FOl8U&8SadpY>gVuc*|jXU%9AIqJ)nD}NH_qf2w_y?q%mry*DX%nZ@@V8qqYKzZ_ zMv_(}iTcwtKhNKZU)P_^r4;Wxz&_7`KYdqz{sP{{xPOq`vmD=8k>`)$#V(WM`IyEQ zP&y5N8w@{_sQbe@FJLVAF%R8-`fetExC)84tv{LkK6aG9pWAu1lj7%Aj*LIUe217C zAENlzvmD&;tA6W3ikId1h*|KDr2i8j9^QgK{ry7yPv1g({m;?7KFbvOyItmGjAH}Q z^dh3>Vxn&N=Ud^Jv4p~X&*#?<1V843znyj_&H3P%qF`KcEAhcJmAEwgJyx=#FA(cU zB;$p-nO$7&4x&x$HrVZB_w8J-KKA!B&9Hx(-FHhoE?gf%`je`g^f5~xrfMmHwT5>9@##B>lm!PU0=)N;~FPs{Ni%#VSnSDMo!cEJxn z?aRi=K4XD8pTFc@$d8}wM5Fja!;kvk1{26gQX4>LFXZ}TI>2(vokjj>c4s&|&HmSm zd>2wYlWCUaKkjVu_epq&*}CnSF>CeGi5iHS>%tub^DWJIbI53E8(`~e^+I{1E9%&Rw^02 zNJ$AnYL^qg1lc&*L$^Pfm-egunbT`^tyvTW4VV)Sbz$Kgm*7Xe!r#vEn=jp`);ab5 z%V*~G7Sm-p-qzJ*XD<2o$o-d}!~Gv7{y9#+iQSs~&$E(NR}vq;@Bl8$@er>Qzpg*N ztBC&!h_?!EyIww<*B`{6-c0c_9Df&=1CqF3*O4CYx{K2Jwh-OKRKq_v(G`eUbCR(7 zKc^3$-lac7@sYU`zb^mWMv6BH;^8g$)3fvG5&y1_kUM=f(cBuU2juT|WjS8kM>#&b zcX2u$|A5s6&vsM+RR23JO#Dm9KXVQ7p8z267W~;C6t186K1T5}%-44aXw~~vkK)iEM=8qZ94|!o3@IpE2`jg{)j)!pP_|2S9sQ0LlGR=wHu4jHM z*R4!5oG#1myE#AKeH7p1bUvm-9AB3|%6laFXBdY*e#@@kzw(Fi4_CnO9ZXLAQa-UW z;?~=BhUFsRqfNE;OY<)rMReg#n!?-!znlHZGR|s9athpbxgIaHpT-ST?>W|oA=Zb& zobs++9Pc^N8%}S2g7|3o7bKPk!l58mfuY6&X^xlYNcI!U;%vVe=BxK##(9(vrpI!d zH1xV?G*wm_IH}29l|Sdj5s|{mps%=#;LfumzaW zeE(h!etrCwtJeCjPcx32xf~AuPTcZ4&GGykukF9o4`X#nE_QAk6rU4{`Yq z9BKc5sINW{3`QgMef{;RWGI|y)ZYcb`43)QfpFMNw90el+JqJEZouIdY&%J`7CgSK z!Rd%xl)CKns6Hd54_ck6p4ysrt1r4P6zRcjG*$?DZL>QXH&@ia&K8+CHJCN4fD`7A z`);~Yag2*QZ*X4K7Y&BG2Ww$khpyV1Q)^)JO-*a8Aa5)Krmr>^beqXu3wO=H%+KVB zT_|A&!mw{3IB3GolZe@ca{zNStVEmLVcEh#>H9+C zh|y@o8i>VbE>ra}n|xsFUcA<+dI|xitv1#2A`4wDvDZC_HL={p!Oqi&?EOH0Y_5xlTy?FYI6ycU-SpGCvK^1C!0#7R4FJ<)-x!j;Y?qs z$0IBYI6yelSDVW~=E*4OC{WC+D+=olT_6Kmtx)aXL@1z_j`9m1#DEP6TMkPBRzUa#6fpBd;0gd$q=H84H2zeFpx zw617hAGCr*2ecuJmyHst+eH2E2t_)ee zpqe$%Zj&K225~EaMMs-!8;<@^Fxi{W9DYf9q$Bd^3k;wT3KH*0dK<%f*b1A+A^Dft zcA7QyF)%&r8uvYpt*R;nB9W#jm1K2~Mnu6&}#KNIuZ5MbXI-;p0*m~%ES4LKz zp3hhGK=Ow+6t*I@ut_YLsDo{>W(%nF0#Y)#OlR0wovNpMa!p@%W+$pMTcJ?Gybd_VzKE?;@s$~jnY@oX@I(Qr86 zT)~m_-DI1z??~Xu%939-KO#9`##dU zT7EF!!p<%jQiJub-VpS>fiR3gY1WD2?ZaZK*(7#DJP>`3=l?Av4*Ng7{}1zjG-2@E z5lU;sK)BW-s}YB);b|2lnvHN-u9t!DtsK1pL+5keP#=b|b_xcu32OPsudu&@M+-?T74~|lp9wQD7>mJ9Wty$c9Z12LJpffV2lN2B z*zXM>P~?aBlyG?XVgCjl%nv`-X`Ia3mBG{NRyHVNnv$E-b3=kkqN9*ptd$R@gc8joG$^t8dwSnhI()%rN&IcUVvyk z5D&rR3(~6Plt~RRO~S?wol`i4YayauHREB) zStvl|faz}Yv|#g$8Qq3~>Xe_Q5;x>GJJsC|5cP_ky5Qi)r&;(Oqd50C2K)Kif{_YZ zuzXgN?{cA9Y-$}b4-acB zqK0*WU{P!kI6Xts8h?GRuV^BDHsFQ#I0C3&}D(4hVdglFOds*fv$j7 zET4bgLNb&v-i5b4<7NsBX*`*V!2A~)Fj=jn*<(eZKY}SS%*$dBOF^}l6p-D>w15eMF@+kj_om_?t|&BzbzotTmqVWut*-E3 zF}pZC9BfGSDt@rO2en~avS@q_8bE~#@`ZH|SSeJ!6%Mj+eFGSnU=*x)e+bs=z)0Ba znBQ`c67oo-93vGpEeb6f)itOd>q2N^!FbP7@>6SyYAF~NC{VAtKB{ry9UkqdMv$O| z%Vcjf)ziz$h0hgIFd&3}GO!LFB4DL7m<#$a3k&VNUS8DarSH?!8MOkYHLAOXrz|~# z%J}y|^MGL{n7{-qp+esPa>2LrHR{=kG=+GA))<71iREwg)6f9H?Zz9S7)nJVdYahhVt%1M{Ad!kgQB}`Jtwk*m zOZzyN0T$rH<_|;9hJE0O{HjfundBP=>5MrqYz>$&4nymQs?!-AfE8b?2Ka;dzOs#G z9M!<6uXmN7701!_zQ8jI$_u?xw-qj4zjpP)%d{ZP;k8Tc*VY&2m+y?Q7a3;rKtF(S zxA45&XoMcPyCF7+WiG(iH4GZr9Hn?Ys4KAOk?JB1QT8+yf!152!c$5O3;0QST`X!D z3X@2}T0HWrc1$U;HnG2iY+>Aoc7(@Iu#}1>npRW66Z+K<*atB4IKNFycIaQ>Tww`3 zLW5BjZZ*XKPz&`04Ie=!KyLW9KdcR-OXeJU|ArXxV!nIzoYAR&4qmioUhTlx9g2h! zy%x+gcmU>nhH6h^gq?xBu>U2sSH{sXGR1Z=haO5=_B1>@*D;2A)GsVW(tke(U zN5_1qW`#|UAMJqY3v|KQIf}b=mGMLVGEO8BL*EmJ$3AMPi42J!KH9`lqvFWiz;cAJ zn#H7|QAXbeOt#c_53XB_8L z!$=Ohdb7GY5v!(W`3--BOCS8 z_a>#!yo2Opyocxzr`Pb~Ly7aOFsyEJyj>hGbHI5jpB(!e5z6-vrdjbniTImLHyuoF zAG`fb(@Zl=vrK&)KgVw4y_9|&=W`s>A;zPZw_NuD5D{@|sx^fr8`geVPWt=zO$SoF6{a3NS0R3QiVE!)TY=g%h~o9K9>ka`#xDQT5`Hr2QPUx;pX?U=Fp5aQ6T69Rp_tW<+g=Qc zm*xDNtexXV(H{xd%az_)`2KY6$K>9{G=1S&!_N5{&EJBb`md$7{aFU1!(#bhMd@-jk0+e? z3ElB<3x59{&9;2=M~A8Nz+f6wv$A$&V$#aG$+Ap6EXx=yJK{4$wZGGa!9qxZSQPR( zFp2_f@H7I3yY&2J>yd;NA9*1B$UTpIJ^^vy&q|y~2}}K7Q*Z@?tF3T2yw0+^=D?IO6z{X* zCk8OL6JaS|v3v(6Ag&NwU8jVisS{6Z9XPzF)ghMk^gfgCi)0tm$6T)h4|hbtpO3wd z&OI=zu4!|&7cJUwr#akf&wOrG`R!VJpk42KmY!m7{^G4F{k1>p!scLK8TL<|5K{gr zcI)xQ|LYw7kq>_iO|v2XI-d~7yN~J7p^y@(#J2&I`D6P{n^k`;I3?NB?5~$gkAEM> z)8mW(?>St`CH^n4zu*^t$-i9s!1Zsadem_~%l=ZX+u5zh7yln}xZo83?d&f&#lKv9 z5>M=mxOKafyP$EO^icQ~qe~zF^SmgW3@wd>Vu^{4r$WUNIs8lEH!j@Y`0+6r3?JYz z96VNYAa(z#<3AXpIs31s`c_;1RwGRF!Ky|=R=g1(<2QEF!T<2noqK6tkw5ldGdge% zZAB8Wn9%`iq8+i6%@^xPF1PVdW**5|fB(3fDmnzRnU=zz+3)xl!t+i>U&cH}$FGk|&HZja z@d%~aust5Ohq<0YXNz9_D23numf)Wkjcf3o_6LFM>pZ!0$WEf|blT5YL*9O>0*~^) z;rb8l*G2ht{JQ-ySkC(Vcj(;xjvuyflrJP*e{}m}oO;QK>pSJ=GtuR5GR}h_hI9SU_jmrDww-cxe-z@s7#<|U7OxUnIOij}{Bf#N zaQ^*Y3j5!-SLvKzztGx|>!;}-RQ?#p&vN`M`xoMGPer5(4C;4sXAu9)KZ(yFXL5dj z;`4_8MgIOej>q|o<9JO|h)MYO?T7+}pq$FJMZG|OL0Hfqj7{BvMyUR+8rEDy9T za_Q|iGl}#^$M0{d?D(f00Ezu+0sDg+Cpz%mQ32{g-Nw(p-_v`>cR_r-?Rq)l7<>GW z>E^RO4{^PiQ%5deujv0@sJ+GB^J;a z5Y!F4-0YA4*VImR{rA6A+4j2}@L--ZN`Jn~#*bwfhVyUk_>DjBC;X*9-!&qB-yhxa zr~kU2@R$C4*NFJdMbr-stC!Qsu40{4;u8I7ZfY8lJ>rsUr1A4f5UJq&lC6d3mkd3_ z_3;y;zOzRzpP%DppQQM09RCugfW)*7JK9r)P9QhDk4_3?v$Keb=NpBRjEb-?qh&^in8YiC$V zSw_;It0B@gaNFhjS>gAW?&kW;{gm`!Yl-^Ja=7^yia+!-qK~n^$lpbO@MRApSAxHd zlM8nwP`t%I{m8lY_>-fID!CZAVcSIcPwVJ` zY}<#m>@X~0!(sZhux~OJfECrGwF35;D{p*b2lwo)T2aH2>*%V1cO1%!*;#hXK#jb_ zoBIXTo4K24_J9l2y2#zD)ASL{mucGsa%Y$tt(0zv^Er;w?UL{Ul!oEw{L=>6EkCDoMngNOuao=Uq>|Io^SizXVZ2)ywKFP4Fst*u$sK5O}cr5&>`TCniEj`J3@!`q1X`h^~C`P}xU z3zjUdscRk18iBVo0dP7_AsQcq5gfg82QPSwC%&Bn?`tFm6L{)LuL&^mtvY&NMVfw(3wA}#{3VO# z)~p(qvb2W+-U7e@NHh#5T~CHnZ~zCMTo_@=mgZ6<1_Gad)i%MYeTBlUg_mvN@cuoxfccar6<-0zY9oQGI$Iru zbM5j~0r}-iS2`O7d}l zCJQi6X)*Bydl$2iFW+AMQot)^vcRfLnWA77Sd{>o7<^51@2?FNHd#}qDr{~#&UOi! zPD3O8VJtA|WnJ)^cSTLs6jH-{8+5eJVaUq`jU`jSD`>K&oT=oeH%@0)z#`uh)C|00 zCJS|(dQOFYRR5vGD`~Q(Oou+1Ue;WJKltDj_yL0)FuHge28#*HtId)x2cml%9M)FOWC3rQbC%g1x?^58h=GDG=~*4SqL1LKH#JcJkgG%T(2xSoEjd2Gga{m1~~2tTA(`c z*sKfJ%xe2Bbyyc2kyWJF3V5YV76P9Nz-5sRQ6*A{H(^$*Nl^m6NdbrbsWrJhvpm>y zR?K7}@H6QA9&C&xWQYH)3@C@oXoj75H z$k-b2!y&bG4RreR9!eagQYn*#yr&gR*3>kvge)Od85c^tVkQeEPCX~g+SH5_CYny+ z??Vw3@Jg911fEyJ7#x`ZCmrP{$OVHJRTpX@8o!WGa>}VXpo*C+5XhPNIVV^{8rlxS zScYZ{i=rf6DU$`co!JcM4WguL5-~W;bU=0cWYB5x_S8g;c`BQDp56@u>E@w;SIT4| z@Jgv6c0d&~SqOXzOB1Kb1Ioe-Xlp_F<+(jEh)Uv>GFc#$Go1rCur1iX4>%W9a8(65 zAN&9^J$iG~3l~2n@k*I2Y@E)A24Y5B*0J(ppKK1))sGt zvtlL-fltE+W41woldF>r{D2p}fDjMiOBH+d$P;zEVkQfDPj|rXz~^pc1>tEYK4Vi4 z;`U1R3V5YV76PB)1WpDV3=IF+E69{c0k4$Ff-I&r4F@hVcl1Mht}WO&D`v6~c*Rz0 zD`~P2cuUbP-=y9?-*P+lM1hp5RLW!_@JcOxDBzVcSqOaiH;t zD`m0}I1S*mTt~sFfLF?7A#mQPras(JxLpbl6vor%;j=0sJZ62V8qwrGxq^GK)s`vR z0j3pJ0k4$Fg1n~VMl}VogA6wG_chJ?w5f?opnzA(WFhcMsi6X1DU*f3aiiKS*bf+p z42m+?`x|*{qltU%6Kdxgev=2krUr*MB^u0Sz3@dT{E`?P#;;!rc%@7h0>{-_8!4Wo zr@j=VHeRw)*COtqECZ+!`y^OJge{w@VZa&MN!YBYUkZ4oOcnyir4RVh2gq-9F9p0( zCJTX|;gmPb^m%>7ITeD*@}6G`c%@91>Tciw{XKy7H{<{1m&Q`gOBOqnvrT+v^862Av!9j&OBUFzgiu@1 z`cQ1*?0B?4VYwZuUjQS={C!d4Zyd+x?v5E9{=1mJv6lFo%-=ss{0%;bJR2weKIWet zCH~`>e>zG0{mkF28XftV%-^?;_@|kF+QA>+Es|?b>$geHX&)f|8RnmJ@ZT5x@rnEg ziGP;)`}mynebvu4k^cvXe~$T!Joc5p`kEDdh!OWJn&+rb1J~A^0wXf`lsj${mY}oE zW|gIUrNv6(yP-*dA2!i6k5Zjz^#kuf#(SkHkpc?pcxIsA4{zD4|)7e3#f}P~SY+Y^k&HCm4F@&mlsScLaXXb{=n_tl^4|k-n;>QAW^Oe z!NWgfPtLkk@Zmlx1jz^E#{&4Za$FC0vg4Gx4FpHIqD<{Fnzb66R0CyvtMsM>^Fn{>) zA$%?slNeH9R#K&)5ZD9KCcWn;bHeE&uW}`s0Mr%d`PWp4Q>U3 zkG;j=8;<#N?AcDq_Yv|R7l4L{GkwST_%?r*KbBZ+bioQ%pF2k+00GY2UorWtRY35Y zvml&ig-7Wd9yp;QLp*g%KYp$2tZIk|pN(3ZiYD{%kv|x7Wf=JD=bW+$?SlG*`{~W9 z3o-Cp<>~_uWfp+sL+IhnF!@$Jyf?_QQLmXM4A|}kA2%z4Uwuxo!BoY70<5Z5knH#% ze=wk22YvKKb$X34uGCdkEdM)5`iow!-&g=X?-cGJwJ_B830h~W`fbMgmH0*<$5%yx z-pKKR0;hhKBOaSS)UWVQuMvIInvT&UMii8-*?^C-sU;QoJapsQ=-NPI06x$=n1Ewq z;2V(O*#R#T;&+G}`r!07#{sH%7AIck5HV8tvNBx0`RA)~I6I9opg{@vJS4i!v%Bhz zU?|vOA8OqZP~-Zp_&LVmJ?rqW3Bhml2>#(s(@>{Lkb!_#T9Q3rF*?99sCF0WvO1^? zp+rL*KUT4_Zqg|TO%HpStG03%@eqVf7Z_$X&28EtH!J$*L2 zBJmp=;JAjyIZGBTTCl8R?s*HAEn0fMN>ePpom1nS`Lh3a`&7EN2+>JAMU7JfXs0bfTAG6~XhCmA43rD8T#4n~iPzYB%tdtFdePJo5(9wyH%G`F*!iDW~-&df`hB1!k|5r$cMQHjR zSCT$z;pw(bO0WHEh*lY0Rt!!W$o%M9<)7{&|4c_=xbKG)F6=Tr6h6k76^8fLYtMp! z5Zu{QXdas#M^yN4iru34XV_o(fW2E5Pg!913?osq$}m?E-`q;cpZMo4yGWG>zup_N z`X|ExA_WV~1|IJd0`mb~v*MFpKciu9l2*f#h~o2mm5$15>M>8Q2%c!U;k>tbC3}Y!>57_ z5Zfp|I8wiQ8d<4JbQ)N)P4D-Ve`8MS1bt$d`%z+aU`XZ!a z+2csQIo8K9Tz=7?0}MF#tRooB{et_S#a6!oV`csFH4vXM#^fdcf%9M_eKtx8Dj(un4$+UJxVCUa>>3&(nsS#Bhj1Y_U32mTOs;G_AAZyMau0z zQRGAVh5XSz+1EvsevA?5F<=}c_;bhW<&TD8=GQFcm-M;IB!4Rj-%vNw)%1O+Dr2LP zOFBT|29JAiAY^sHxj>97_bw?P;foDLRlCiyzhRf3%I8~4_Or@>c@{je+4UUj2YzhX z$h))sTt94oM87jhN}pwa}NiFL1L*I z3X}bY$pX&OOWVI7>6OTN3=E?2BtWId@L}By{*m=7H!MBLRnnI#zrl80>Iu@#G#5uBqJKWNgJ~`Qt(?Ef`11Ib zeG5wdehFtP^4axtp?&k){K>xU+QIt7j3u8cgUXj?ex>Z2;L5Q6j8Uz7SxCw!;aRqq zy8V)VOX7_&I$$X%tz$w9Z!`&$1i@-!ASSMQ+*E#HV2V=J-sN$O+oNvTwdGlU?&Oekljp2XkhQ zAi!DP9M9UeBmk^-_G%J{{{_FD4IGJgrr{+R50hW*nM1V5F3i0il1 z_%J8^1LGKD^jckOI{MH)BK{2H5SXGDLi6%6{`a8v8Q z+C+cZe*3j>KZhHfKF?p-H(S4b9G=tCZ_@NTV~3M{i^=#$7&9NSZ+>={vTr%=Uoz_o z`=8u*$-d_0tLv{?u7q;|N$>rvpVB_FSCE{mVEqBF+{-k+HhSXGl;a~3jmf@PBOIUB zw>FiC&Y0cUJPmeV7^|gJMtTXQ^FK=MO!RN4jrnm*a}l|veH(XD`}Xm?!O!hP@aw$!4x&G3_^aJdh5zmjmx!t7g`XT+_%IU`#gzHVX6jb$G%oujAs>wJ+ukHSY z{c}7I9mD;X9nR(V+xW@8WqJJO<9V-?L+o3Y`HG+=o^Ibvo|ojb{x`?v?5D~7h3Kcj_FQn8wtb}Wv5)7!M)NW?ZuRl}w~FV#zJHRw=U9FjZTuID^EhTM z#q+;L?NG`u>$9coZ-sT1%g0`yseQ z4l=)fb|~ZNkK-l%xCGUMq{}fMupjWLvYv$4r!4ztc$^1%(H%9S^%5?2EzR{P{C%w72G5JK z1BLxlhU-uAH#xoNzwnoEnFkKDZ#;jIcw>zC#9ny1i{lR*A7^=8!k3i%Y5ghN$Z`qM z_)FFSt6=;ByP^9HlfG{xcFSPK3RX{deH3;^{ytr zO5=D>*)V!wDZmSx}4RhH1Hb1{m;jEw1 zPW1fEVfM{2K8@GHYN>922$9&oQu4`i`mAQ((_BB&Z%R3({}=w^Z?GPUKb9ZQGnRhM zwEJJOf18+pW*B~D|3bni$Kh!$eN1bAh8<4h)0{T{mV9jc$LqDF>>obA0);dml=VYA zcVZqqvVwI*wZ5LBcA4HS^Dl0H%c=bx#N)5@K%44kVf`wO&+0p@cpRQ*89pB0WSXcS zmi5Kk|9!o(-zMvwQ78IG^KbKSVOrmk^`*u3_!HKbf<}hpkKy&Rxgt<}$Y{WGH)FX< zpJ6!|cKhP~N!lk@u;3`1--7-LK8`2)kJ%NRwZDPZ!^Rk}69P6Y2pnS#;Z8>dKiM}U zOzyn?>ir94=)Z#G&)Gx288;hXWeoWzjAp~f_+*|jhSx`B{9v-)`)v90_(0Z&*k9x{ z2G_4)eO#`8?hvA8lTa!O$9HWjg25Mo;gBrhMxLhXd(HLVeW*K4C ze_?p3^82KJwfhHtzQOk0SE_&cz#`I11~LZLCh;Iflpk(5lYZaNc1p&VzWYeueOVf3 zWLeJA|H=4I)~&=2%KE6m{aS|ciyX$l^4$s}+J^b#_%18uV=Dc#q4od5N9JGIQ)vBI z>LqQ@Pf5QrqPJXc`TS{p#nw*_kbVgCOFe(k`*+bpkx!QUn>4qpJb(Hn{C)M*uKim3 zGr4@ZVd)FUpC;#%(dx%|oyN=3?`1UpP0Ziq{PXzo_80e8`6ZmG$Umpq2PvnFKilMa zKQoqm#Qvt4Un%=rWu)L~cr4uZI@!a6@IfW=Ttofq0S3+A?|y;TTj2pFe5YJJM}}=k zhWQeu%h~ON+IN=AU$TAixNiwdCT|Rn# z<&*I(=PP^wAFR%XmHiw$w$MH|O{0Z#&+1Uw0N67VG8Nx+kUCjn0ao&-DzcoOg=;7P!ffF}V@ z0-gjs33w9lB;ZNFlYl1yPXe9|O{0Z#&+1Uw0N67VG8Nx+kUCjn0a zo&-DzcoOg=;7P!ffF}V@0-gjs33w9lB;ZNFlYl1yPXe9|O{0Z#&+ z1Uw0N67VG8Nx+kUCjn0ao&-DzcoOg=;7P!ffF}V@0-gjs33w9lB;ZNFlYl1yPXe9< zJPCLb@Fd_#z>|O{0Z#&+1Uw0N67VG8Nx+kUCjn0ao&-DzcoOg=;7P!ffF}V@0-gjs z33w9lB;ZNFlYl1yPXe9n@U;E#$G>liqjBY6c@t&|12pU~|!Eh*I+02vi zP*0B)H`WEhDfErTlA&lMVHES1cr&IOz0rtaoF7UWMtsnyF~VU3eg>Gc6`~&jV{G;( zMwQXG-Z1)%Zo?X6e=`87^YH`XR=(iR=|c=P5Q?jWfjD`H+tS?uju$Z%6u}b^xA51} z313UnbGXI%c6AZ%HAIZAUiy(_e72i$+wK&_6L&&OZ}a1H5*}ptYK}h)m*8Z45-#!( zcL?ehFLB#)3lOlV@aJ-Hwno1GD1ykrmXqWwa?<3fH^_hKP(SDU%{#C$*^)T4qMN-T((=&>$MDE4a-;Dc0K8OBlX7l2>z&6kK&g4wB1}! z;+Asj^(Ht3x41cbL)wkr&XQa)cDT5EQ_2#cwL=IAb|*A zK9Q5I*CGcAk7{xi`6y!zyzTU?;L#K*XsVk$Y&YYv3dOo?i|fa0$Oh zK35q2I|{bLJ3Ebf^y*~)Vzg^5#p?=D&I24@sMN2xh1&YZ@ohINwCJ_aE>&@t8Ed#+ zq5nA>lX7z%M(uRWU)(wk1_^(V<3X3LF5UgeJ(M4-pYbP-CvLsIEv>%oc${uhgbHF& zHP~|3<4JuBmHHN{@&TTb4%A%L8;c1>7_iqRV|5Gr9xP|t>7zhJ^sH-Pp z1<^yoh3fLP`PZhTRUe8!V3u@x|0(SuR-_(cF)CM#%Uz7F z<#4GV-5tkDf=l$orfkpR3?v?>{OoY%tGg4Nk=RR{vOvVX7NgKV)gx;=9p|IF_4G;R z@8kGFlVITMfn$=(ljQOwla!Cx(_&QDiA7i4^wv)kai_=(RC4o_u~xRH^b; z3~QYQMq;ed9ZiAH@kRjIfqQ|;qHWcCEP3EZh`w4xQ~YW znZpg^9=Kz0&x3mk+{eQGzwb1Rhv2>e?(5-R33ol*|2oVt{t5RpaBqYAHn`Wq9fSK^ zxX*#R8tw^jn{Yoj)-axhdlTG)a1X%U0{34IHH_cForU{$xclL5hkFv-C%}C?+;2en z{|om6aDN2u{{#10xG#nK{ctP!uxvcyNx+kUCjn0ao&=1EbeYR~Ez^p0MT4P8j~VSY z6VUy3S!Q=AY$Y0CJgA%<30Nly4VW{{nud5HSz}C8>DU)jk;lF>+A}`R*!bJ!#$q}P zS>V{066fWFBOR1g(&~$a14%2<5ep=HL0BtlI&8n1RUouk!62;P51JUBFq6H3q}dgX zBm<#{X-71BVGVe)8MlB{Xq{yyqYyEaFoU7E)s>9K2QjB;FxnA{bcItvs{aK=5S91Qf;$B~`XivlGqwdh>iM zV#Ogc=tg&_Clx1F^?PuEflCY~8c@#~0E?p=A4Wm|EtD~Waqok9~fx0?p69{#ik!aE!XaKp#lL^$K+S;0in#pEOM@LOv z9kkA%!J+`Y95A~6RB>wKRxFz6=#BQNRv(Mj z*-epZ$&qtGF^8q2giu5bLCir5YaWbp$V#-r#42uwsI;vrBWEP2EpVdkZ-~QF(Av6& zL@XRi*4Dx74%%B3*nzYf8sRV673gp#ZAcCzQH*hDdC+*6O)J!@7%l)|;v^7*tCb8B z)zHGtWIV7gl&FK4kTKW@R+xG+lKs6QOcICY2^Hte(X8#a%-#T)$Y>I5CaiIbL~We{ zJS6*?I`>d4krj_2a66)sO1=^bWIjoOqCiSOiZ6}K2wL5UpK6w4w?b=lMn;Rb%Aw1k zbEu!sRIFfeQF<3`P+piB{!p5%eiSNmJ{_0^6Rx~=LsH2w(3!xJbLE3H zF=jq#(U_nq9NDguk>WODEKV?ykeJ=^Xdf6*1uL3L8W!|&tsqasxCG|N<6!=b^Zyzi z((QnG{%7F63+@cuVYrvUy%g?txDSQ<5V#*Z!Z1DtcNp&Fa5umWix$SiFt7hG-0R^U zfV&^=*>KmwT?6-jVSbPE{ukiB6YdRge*o_Fa8HH14(_Ai{$Id#JKRg*9uGI-JQ8m2 z@+9C%z>|O{0Z#&+1Uw0N67VE28WOl%jmT?wJ_8E}5w%!U(`we%^d^(B*2c#E{{99W zU)S5A4X~I3Q=i4K%u+`SK*Atst+SIR9BDB{W5EhX6l#bHOAT5RgZ<-W-t#<@9e0ai;!u;7aU;jq~kh@>Dp;Kz$8HH$)tE-M@kM675kQN!9}*31#bgSE0` zzhyz(276m*+@+414?k0QY`y?*MlPID8J^TyReZ zcP6;UfcqTm_3r?O_x!I0cNMr(!F>|;_$6@t;4TGs2{_#Ie;wSPg8Lx21K=(Jw+-Cy zg8KpN>%R={OW3;&;d%(RL+zY_rJ^ypS?FRQ_xTk*?xIu7NfqO2vM}fN+o`tA_`xLm>gL@sg*Mhqk z+(qEp!Ts{#j`JOGOW=-ydp)?+!z&#q= z-+|&k0Pd~e-U9AAaGl_u3hsBn{qIv9=L_H#!2LeB7lS(r?ox2u!95GyDd7I)VUF|9 z;C=w^?cip?jeu(d_Y`oUZNa>F;dxV}2lG6)W0VG!`jiHp9UE~0;-&K@bxAzxSG|~e zWN|wWc5V?SP&lG*!+GPnF}z6zJ>M-rTc^0iba4 z*Rd1+f|_xLmO>6j8j&@UFF`X6qhcb%7?BwTg(7piDF;X;W8_Ejcw-W6acjcDfvVN` z5XI{X7^#Lzqa#E4kwR}@u9(N66-tnu#PLJ)4p`*i8u>a}poHxmGg4Q;#d!DLYp#Z# zHBz8c|NI2#Wvh#&^dh?cGy-?9y?B2dJ17_@6c=*frxR)dF{S9X=GzanyUp!WD6Sbb z&XRGgz-grjuYkcFC#V6E9EF?5u$B!)ha_<+AKsFn8&g!|*l=+O?m&mUfk!bvaTr(M zTj4e}te#=N72e{{x##2R=sB<;JV1jO-eAV=JX~sb!_gpoZIA{FkV7vSf|x5|5DM2{ zFiKnp9B(9!kyR+wJ1h>^k`ZB*3F~fLzlYOdt)}6~-9KJ93hy)ym7u1)sXz}&*Gg+{ zy`&9R-2!ZHZ*N95V}2N|U=##>hjqrS4_L{)G(VV|94P@PURdpBIhO=NjxX#I=!CFo zaVLwYl^etR&5f0(3JagiKuy=HR;yCDJVliw_lf+Cd-;KvZ~(_W8W7;rP-*q{5#9;K zofvGg5~e4VSKEPwSX#bA-02dIH+@ZC*`!e18{q ziw#&KgmORuJm%GwP`BO=O#)TIPq)xx64*{Is)1{X{7?(Dkjaq&>^Bp51A2m#8Y&dm zSA}Az3zAef-ta)aFEyoJ&AB3MFgt3;1&BrpUSVWm*9#Zg!W94+K% z_+#}##Q1@U9JI84=q2!s$M^(3V}naQ&;mVrQfoOkh7z)&1nFlWIczS_!{LdJl6z

@8BqQyq0Z!?zVyL?zZRSSkpINf(KQ$a|gf% zbpRd!8p8)s21~;*s=`noceTJe10G2#!C?pX*I^jb zCa`D0dI1(KxQc~^1`XT2fGQ35hxe<25InI&5#i%X&2Tpx`*VALvDl2oQW{OGuo;An zeSN$gaAR;9`o^KSBNM~$hznK+@8On)$IvcoJ>!I<;nDE6KMYjE$UWR<#-%_51YIXS zPDKy>#0bN@&rcr|OGjai1@_68;JE{7CWG)80vHmsz|%^{o~e#KIF;_&Ikju2TNs{# zd(W^ahuu6X12^GNDQJiAj1cezO^1_Dz47PVo1xQ=9|04f;4rnd9sX{Et^tD_2!U!^ zOF(?&f(KdFJKlm1mw(Xi@T7(r*J@xcJGl=b>s1O|*P4_27F2ek)Jx0Sn&QG<7sg?U z7vY2f?GH}W@a&_uj2Z)dAE5Id==Pw(`s@)ZwulRfTzw{q6@vSJ*qS>(;Qjv?{Eb%y z_V(Wg7l8X9xDSBCGl2czn!({2z(1eqIDZJP2<{NL9&ot-e-gMygL@RXuY&M*fO|E# zX>b{EzYXpTa9@Ev|3|=m7~DZ{c;Ekt;GO{PYp~D%G`K$n_d#%ZaF>9)7~C&lfBy|| z9|t!NZUWpD;L_mE23Ljs{ojN87PxnU^TE9o+)Kdi0f%P*{|S5juYkkn{XYWkAh>Pd zQs90Ld;9?0o50-(t{2>e;GP5SRB+#gz5S=a1>oKaZU)?y;7$eiAF!|g5xBnw_xs@9 z4DKp$TfqGS_Vhmow+QY}z`YXOE5P-GdosBHg1!7t!F?LsC%_fKWx+ic+^OJx0DJlG zgZm!1KLqzia9MEIfqNu4v|$D97`?W-&F2>;#$N>E@pIh6=R@1f!y559wVgrOaKb^U z)}nEx7w*-HaM}jFla>&*9N0@?G{?>j+d6!fC>-2qjHV_#1Pf#t3Te&K+XqV<7=Uwy zUg+$juz1XudKDNRkE%cA6rMA$JurpBipDr7JCl~M@FO{RnTkq>{Yf*PmgWbVWovOQ z%s5c%a4U#oy{tY#0fX)(mtGqV(?{SSJzU1-4(EnP@L4)chP4n3WG-A=>EHU}S( zDP7}o6aHoh9Q#vjTuaU2`mUL^aXB2h$A`smKk8^@bVbz4sf6=0%4>k%1#Xe)>V>_q_*YluQJUI6}e&`UE zPq_TS7UYK03F`Hnt+htmNue&59aU(8+NW)^ry0YNG#?lZdX{Yq-8)5qI4|^AAdPhgN z>4IJdo4N4d3C^s5I558=)VB+T;KPydkS30T&CoCM&0H94H~ZS%x;5dfJ%4fKOzgwcNnpTrf!2VlKg!!B<9LGu#Wegh$8W$Q=%D!&gMYdy5y{;Ptku@4>NJ<5j!(kC0Y2eTiIWQ6?A{)=iK@RL$!9+DiwW3;D+gf<^g++OI zdl+mA>g_@SU2eYA-|qHLj2DYL!n@~qJP%uTc*6t>;&nmq#CT{`-d{=MthMm)JchAu zh;0pb*w|vig&l0c4^9@kTn{CCwXG1QL-k;_O>;Lc;b6bP@0Rq2Q%AU=jXsJF+{w)D z5j@ey4vT9Ul*RXO!vjM!yxemYvGKQa7%j5l?r^vqgPl4|lXU2aGX%(icVu!$Yg_+| zBU}H=!h8AkbXdlPHHS?e8W~7|xR6_}ejI>@7U3X=VzIMeHz~q<1aNa>Y)81TpivVU zK^38Kv0QvCe=qLA!yR_%$armV!|Fq;fwcoF`+$1JM9f40;T-c3j_tFWJzWQdptfNMR^kKsF2|0Y+Boqa9fT1+p7ojy;z=oo3s31t}hXa1xHAfG4CtG%= zJ9h1Wf6m!XPh_n2+y%THMDj0it-C|m(yrjQl#m)WPf)d+>l3Z84Cwx&a5|NrfZLe; zsN!(Qm+_pEpdE$FwpvAKyrwq~Yp)bS-pSJ7j?Nv$;R7w<^ZysYp87lB@c#ePc<;Cj z`}=c!4<*n1m}W#D!8RH>HYrz{3GCA0PgwVt_61~xMzUd2Cf48{I`L-0o*y@ zaNqwu*x%!`|FhtHaQMFeh2S0u4td~n00Fr7gS!Hh-UtHBL|!+ZNr2DbwH`EP*x0JuBAoe%C&;8tKC{{?V=3hsm8aBtrS?kV6- z19vL8Pr_dQ2)J=@SAp9K?qT5m3HI z0f!g0@S1^PUXKsF4h8GCd#smFH($k+g;Mz591PC2$El5DH zgxxtTt})QcI~96LYIqc9(C}?MxGT&OWGi$_%Z?qe!h|E5@C7=!LC~_jr9FHv5|59I z{6<;$H`-g?@Cp$ZUv%STz1fTQc5jEB1fDhHGj^_qwxe&6G+hdXD1tWI2K*hJ}bMw6F3~rPhxujU6Uuf%nQAX4uQPWIo>;3|D*O=#*eQvxTq8U#fMHQNk-rnMaUIvu z$>4fA{FMwzv>6P^_1B@JLK=_}fj5AbRzf94@-{*@0*@3Gi4`Fj)i+81%1;&0pqJcN zF1_*w*wiCF+CgKZL$u+CpuzDGcpM?pttkRKHm2`@ml z&~&4}H4P`+^4kx!_qGWN0>(#Ry4?=@@q>5^948w*2*7iM`2FAdzLK_fG|1xFqY{pj z*k}%yprVId+D7D$jS zFHM_xMgTFOSJ(|hBhBHBsXY850MB&ExAG))yeNMGFWi-ck8g!MK|M6R@pBN6co7^d z(4tI!mm@rwhFf{~O9VMN>UuVvyx?I09NZwUaNPlC8UuLT7#=6Yk2dh62(5s(A}AN$ zbHGzOxXo1@#(Q>&<)Umj=z|CE;CKgbb)fb@4uJ8gGd%SG^`qpywMP`-7$`rL@5drr z+XhI9c(5RciDIv#eAok~C84Cr9fu}|`wzlH3AhR!bFTq+dA`qece@=OUAxZd+P&Mw z^9C&Q5?K+#PeR0g7=@#^gRJD@K3kZqS69ssxy*x$*%q{G%XyvEo+$iAe*mN~rS{ethPblCoeR}1^sa7M|` z(VO0;1~xUYsew%mY-(Ur1DhJy)WD_&HZ`!RflUo;YG6|XC!m3aGwAz&@Fb-pdweJ3 z%Xa((ByMK;b!s5E_m#2Y)hb?>geuPF~`_od+)pahMMtfv90SBl#txoDpGI zzH{Lz9Lk9{o?*^Bt#DCU2q`dbPT``m5OUUi4?GY;FR9lL!?m^>Cc?WSj7uqba!$oC z=NiVfDtU5VCAd?hT!~;G9uav^mu0`%OY8Mp&3@g6{Z>?ckYrTnFJjhiq#TUW_RBG@ zTj8Rz5CVt9;Z;yL%YK2vS@v60^|0)>tmHk^_UpO4G5hrx_M5+~o}X14v!8sQrlN4# ze$ua+B79Juwx9IVw8B~T^A*mr-;CmC+3%Q=_fXq!OLtxWtM$Jr!+uj&)bl6VPrg@F zRyb`x>3<6fr|l>Guc~mC{W6jIAwSE0StZZ1-;k2`P}^_m%DVnnv){B~zs^YhB>Uw# z(o;Cge$xtP*>6taEc-dnt=Dfg`=yjT%YLm&-a~D_*{kaHTg`s6hW%DleNabHosYBq z+(HY)Ak#stWHyekCugDS+J0NEtLuNY{x@&f zZ|d55el|hOezo~e;k5nWL4xpFP`GGYK!Dh(n`gv+UL{x70gQmljg*67Z9kbOyA>`f3-k5kKX4Tk zPTNn~&8)&{`^i3kS>d$(WS_sN>Z|Q1`~1|6b-f~Ay??j%`FJ*xbXog%e{a2<)$F%y z*l%9(#ImD07yDHd&az)qgpZbmVX^JqidVbU|UP<;VE1YG&1%->sLfNwZtSX$gpY*>ik@{hN%YH)&XW1{S%C+n_ zqvV||`#C*z{jb*lnnvp9pV9HN^X7Vf)DK=!olF1o6wb2Ww8BMYp=`0=oWg1QN&j0? zILm&m5j|izmiRi?vZloN2@%YK>tjoGi$u;0|adVbU| zUP<;VE1b5U*m*(WqOwr7>=UaBr|l>GZ%d?pnBTJBkiuE^%c^oM`^_kMC(C|LZ(aYZ z^}lYzew{C@=SThE71g=e#Zx%Te$xsUm4&j!esc<^?I-TB6Am8<`%U%N^P_(8O0r*B;VkP#zKR2D)87&oVI+I}*AE-9R4zt)Hzun5b3DJ9RcUslOGS@sJK)b+ob{bmjO zttg&Y_o&WgymKSvAV%A72qWR@RydRu)wzs|1%+?_Sy*1}{8Qm9`z@;aTJ}o~ z)%A+yoGknK!}W4jv)?hpe)Ebaa*f(g`awnEwEd+2HAVPnSs0e_Gp%sieq!eyg|qB; zOyMm1&8T`<_FGi)PL};L2OG2BykWno7uEBle(_4OUs>TS`zzhJDc|JCfbWY}*-@x;1EbuRXE zBjq5*vR}8tMP*?=v0p*qwEg-J4A-o}S@v62ILm&Es=k)}QsZ^KB9D`0Kfh2fXEpmR z8}^%5JdtZu=VHH#!ddofity30Ff8k#w8CloNx3}=XW8$V!ddp4QT4Fwx2WWuEc<09 z8nfSuVZW(E_57$`yprr!RyfOk3knyNg|fwdRfW^`lksy)q<)y+vfq%xS@z4SaxMGK zD0wH#eom>b|JC|m)2MO(uUOBI`oSxzbLj`3!ddp4R=B7vl%2zW;F?o7%YI7=XW6ec zq6d_3*)OH!S@z2+c_+($!DLlewEd*r%qpB^zh#B9?6;`uYuPV#xUN^^eX{J=bEIC*YW8c5*f0A2(Y)e`T%$Ta zj1h2E6i(Z3fM8BjgbzkVWnoyJM@%c6wx8_FeTCEZljo9V6hCc0c`oUglBexwJ(r~I zhjm%cWj()?Iog>0IwSUrK0h%vRnIScqB=jok!6L`_LKelg2F{*p(uGyt*UU^e$xN8 zMCyn6wf)4-Lkg$uCw9)Na<%=$&NE7$wx4C^^*(>*+*;TFYW=U-kYXctv$C z_VW}@+fT;XX@!f*LfNu^m{T~*eoG2x*{?OC2Q0_3UrNcd?3Y#YPL}6$R*Ro&g_PSn? z_sOsyzIW@tq+ZTGEGXeZT>1W+YwzFU_=#AIpI1E5F4617@IETynj+<3y0(kpdK6CE z#bJ3BE?4l{E+X%klBew=^3seGytWIDpIDC>RbOov96u4asLIvjB95PkOS*nLAu?(H z!~9$Py8RNeg;9t**4b0DA96XB%b$8F9cjw#yC7c(v@2XWfY zr*XMeB~RPA1vA5yQT5Yy7Q1AXJZ)#O%aD?%?QGda+u54`h&BBiwQrLB&VV0pUb``)3mDHwM2v-O2fW$P4t|g7hx*(a z%@Fy!8NMS|xi3C`{ucBDcZXYCQT4%WQJtgA3HaiX%jJkzZNH~OLbKcM78EWj3-ca? za$B0)9F5cV!*LPu-7IgGeQiHke=e(Xwf$uMxv1)^?I-Kc)XU@TCdq!${)Jre(&H?} zQd@-I>V+>m4i8MV=DLP&X~Ay_wd{xA5rmn zt~H_u=%`TSj&FtNO_3U_G`vS zxO|1P>^GzMS@t`oSPt|a?~>(`mM z{*z=O&U^fGYx{Sc{~iZ+*>_v-zRouupFi6F4g;<~-?e{Q;n2>PL<&P(*Zy0&G)~(Y z_XW4S@abJ1%bR0g+xZCc+tzx^k}6l*`SF0;zklCttx69`cE&pBpI$F=)Ri zPV84uIK)J4gE+LG#ziqGAMK3x>t=bg>|6F*R^?juTU7P6?3a2|U9U*z!P;-z*4*#} z?8EcDxvkq;-AJ&v555tzb=$3+zIC!RJhJu3M6S>(G4N%!QgJJMjRZcPu|3^(dnB{Y zM_im@F;&GCgkmIYl~2aPuKT~PWra~pO?+m z)B3hX{*L1MVj zz~u1YfeTvT>wB1fOM1WC1u5}79mnVCi{$A@%Cl4D>4$Hjjz&w`nUrf+Qm$xOyOMJ4 zR=J=~^&0JNBuB_@oq4cA$7N}At_Hafl|L(G1=KL#?Z;12%F5v?9%ZzX0bdSTCf1`3z9PhGU zzLt2VIK7qQGcP3h6)x9d-kClwcR#0JL-_;71%E^QQ-4c-fy3S$;WFLiyBwdro5KFp zFL-u7f*TDlA|~QD)G!f;)M9BQ{PXth zF(LgiA^jt81{vlJOT>SYgmfq&qcI_)`O?t%01~KOjR+~kgur)53;Br>e3z^yrx788 zF(HGKWBuXhS8FmFs?JnQ$mkS)jl3?w&`J7scR$(~>s+&6U#>XZzlsT!_Tk&GrQBGF z3u~ml2Vzw7V{jHc5q=d8Wi%pSRfRPoU?j$1B-fW8sVl1y0i~D#Z1(m14OJoD5278w zFjWVeN_WXHoc;`r=av6{Ryd!P+bAsHxrfobCE;bpInRva+*9MYs^Dg~g>ohTZ;HRd z{Qc9f4d;E2^)$o2dyMC^Gig4{aJax>kHa%cFFvRHlFni0XQcmt~nsP^Oaf7BKywkDgQL%(j4~KpJCs*ip$|}Me%p`Q+k$hRmPPi z%)ZOGfca;xrhLw=`52V7Ct6eP8|Bv|ropF|FpJTK)guew*hn3FkxqU!A{nZQFG??2EOI zIMD7)PQYU(;d8ln(E7^nAwSDu?;|wM&gJNQVV-^W%st_HvcTz;Dy?_QoG)NG&b<_$ zWxUJbfaUlcpW*l_=g+*1*LxiAvp>i9@*UTO>!PxxGmn773oL(z<7Zf2h0`l6XNhsn zPl%`Ud@48fSgN1P@fi*m*e{D-*e`Q@hVcQ%S6Tidr&pw2jN8KJFFuD0d~Q_c@SL0@ zRmP872S)9exoaX!Uwrsv=vThO^W(25UxDN2Qj{LFbAA7Ta4Yu_uFSZA^H({3S<*S) zXFtRE42NCz9ri0rBtKxk!g72Lm)ZB&Uy}5HqI|Q=zs!D$%k#J%$2h+7IIj2UVRqyCX$oWp*ZpycJrB{DQJj>7F^y{a>dWhD<_s=D~_wR%cs#LD~b&7W; znGe@fqaRXAK`c^Q^pm2&?x9nK$}T)xlwvMevd@nw#$vK*h&yCt9S=5P=D zbBt^B{!zekDxA;xN7CaE%X8jG`pGRaIW6o)gMUSYm2=g;uCwD`i^G+#2l!eL+J zGTvj~XFuTdvV_^Mu2MrVZ0ziaSsGVqS`l2C7&f6BmTng1C|KU)~zsQz6;e#YS6YT%tyiNDzS zym!Xi547RfI!GFlWJC97}Uoh}f z9Ix-o`5fP9`SnUsdvjzt8;j{$<6&|G_K6@&9A0{X3sE#vhK?<4=m?8|A;nkY6_Vy9VBI z&JXw1pHci<4Sbs8HUCbIZ->*q=4F z2HrVD=O>Mhr>a}kN^uSOKJ(Y@ztzAy@1gd;t0tNLNE`T0j@SJ+!|{#kzuS;sX8wBp zoHg*yJ8AqWD@FAfc$f9B&wspi@*gtf2ZsI&2Hw4&=HDGk|5FCu=XkCEX^wAH|1(Pd zmJiT=zry?#9cNbIrN29^H-ziYHfhkDv25UvaeOU5;5}q;d%Udc1<$Bz<9IxBYdiVQtmVAT%ynzq?IC=dL82AN)|02gX+J2S{`2q9S z%>P2wezq9+0+0Xrj%@UD z8Q&=XRztosO5@KEkEhWx68HOeCC|T|hWrf2>-OKhPX1X-KJ(Z8x5vUW|2@%)!rz{O zAL4k;zrgX0>VL|R?=gS9e)A2ya|-GI8pVIw!28^O^!=}yb@HFJuj5IhWd- zyst0SIA-8yjP^gL_{(&z_xCz1`!BI)+29`-d_3lVix6jj!N8Xd{)>wLTJzVEA-`g@ zpNfIcJdE1U)r$YJfuA$lPj#LAR}A^i7_|pI{ySet9&ZZ|(E77g@ozHlDUR3U{}zsK zwEwz>eAnPV&*Q1IH=$c_=s6{Q{+2f6cN+XN>*U{U$oH7PKEKKu_{{%Y9^Q^mjq;y0-{_%9mxz!-m)*5EI862D@|uNdur z*}(fN)c(&_{Hq3jh2wSmcfLsDo27r@Eq)W@Wjqmky5lr{>h_;9@cv%X{|glVEe77@ zcqvc#v~ql-{L_Z~jKRNC;blDaUqJkYhxi$V7rxybFJZxFIlfW;J%)Ub`Rn%Y8F;6U z_}{MdKV;w+jrLzyC;ur!zR&#i`0pEd=PAkOx6=l`Vyu5=*2#a?kY6_Vmkqr0)MWn0 z41AUOKS~-7`*Z8$FZ=yF7GD+K{}FLIEb)QC$9Z}({{;h|nxOMreSWyOPX0@V{7j0@ zb9DQu7{maTa`8!`qUQc=k|0V&mTJ1$vnSa*6XAS;6>*Vhl@&kkakb!p| z|Jtzs>*qfU2HrFHPpy-`Z^*A0{HG1P^TcHSGX}oE{Pp-byH5UPL%w%b^7wPiz&lS$ z=09iPede#9Kbc=A|G<)O@Lw?S&i_j0zi8lRn7(5rk>-A@u`Rny(+Q7S~ z(fLES8V|Du-dFLGZJOg79Y5!k99a*h-%a~*R|K=aY~X{R)B68mYW)^`C3$`cSU)Kx zfAJBS@Hq;+kAP>v{LnN!VfEmzm&8O2Ib+UX?Y~%3Lf}RR|D&t^*YQC28?=sTRR3ET zuiKCFIO@MoRYjx>e1-M-6oqdx@S^{-6h3{=`uMjp{y6^p{DwY%b`AVuH@&BIsp7N6 zz^6D~+N)%1;`m1O?-=r}=MPtSovQ1b`SaxS|Ehs6eB~A4e5c2sWyUwkzhcM_jOQnp z47^{a^FvP*$^N2&&lvnO>ump>M*FP1@Oj~RnydJv4Seul$>UF}fp@uo>G8*3C;u5k zeum}i_CICd{ht#5N2~F(VBm*1Ubp}1H`mvHR~WC`bLAR3KhgZ1Z;^bB_b#LUtIyAy z419{?HUBLf-)Q@H4fz4{*XIwd240@O)#q<%13&ZCb@KNN`R;S6{b>F}2HyE_GXH{sFED?-ex6zmHczu6rex3XSL%z2+Sw9N~ z-uY;9`&l&b>8~aC-=%f(uNd-uga5LDhYzfU^PS%RRtm?{?6YgkLP8Bf0KcC z{yLd|%D`utzdnE4!uW>Ae?z|WyyW)NYT^GTnSa{Adj|i`b@I;`@)!3dk3Zc8-uYSb z`X_7Qdq_We{nN8f{+=N}ctNuMhYY;)sbu{Z419t0ug~A6*2&*DU*EdOy2h;H$iU8C3Jv zqJgg%{Fm0rzhcPunZJI1Y1zWRnVx@sgpcId80SB(@&3Y+fw%VWiw1sy zXgzF+8$3>Qlnf-gYeXF+rQ!+=E5{gV^$nZy!&QDVG5Uo5t}G(pUAy|n(z z9N(z^XAJ%LeEzA=Z+!#rF<$qVf`QL4UZ3AeyK0ob)js_vB;P->+P||c`TmR5ztY9z z`|s=Rzg0s&W#+H<<0}R}^*%cP>{sgt=j+MyV}|+b^=A{~8`XcxkRLFA-5$0W`0AsQ zpMQ1@e3tp^`KxuE{L_Z~3iH?J37rPse>j~V%J&__3>gFOG5<#kkp1p;^3NLbohMTJ z*X^gr!28^OA2fw86 zfP7LK4*N?6zQXZ({z{x`6C+QO;teJ1`M1jbLZ0uJYRi1uX!~!SrQg}o_an-ze|`RZ z%+P1%SET><2od(@4E#LD>*rTxes7e2k1-$l+2sAZwH|N|(0KJW#lQ7h`ksQ;Pvs9t zZ<>F=d>Z9HZ}2ZO|Hmmla|Yf&mB#^@c60EKV`kqD1U1`EBwP$T~-lp9LP58rA=hF~0|V|7E-4W330A*FQFV?&Ze{Z>=}-#&?20rt2>c6{$2>ZT)pW^uA#vhJvRR8maeBa_-rp@5c<1UThVAEOHJ~gS_yrX&W=rwB)+qlbV}1;nzh3`12ENMu zMgM-nisC8#wW{KUzt6wx+$jH6gHMI|>+#<;@O~$ax4lAy{VfK*VvPR<#y84;$dKX~;~VC0 z%%=|X*W+iWftTM;dzI#I;9EIfk3SB_H_G37o~_(R?MKhQ*7I!E`KLV3rq>Vh+?w=f zsdizV&%X^B&!;(j|61>VJp&))Y5n{LA;Nx-fnT|XewSYBe|DYxXAJo+^Vj`%+Q4W2 zjMi^@{_+j{6vylSJJ0crwx2mezR&lU_4(&91D|2MKJO}9c-GHx^W!@CFBQ>Gy0KejL05f9J=O^|h9~ z-K?)WH%MQ*Kk$U`5y!LsI+@S2xxBkKsJyl6r_(Q4{$BoJ5P8pE62D9T{fkTA`kS`z zbu3Z%GEP4o|NphhNX(LmVb_MCjuW)^XP@~WuL#!%#`@*NSZ(IoC=Go7U+E2wdwG3TnW8r$?!0tk#`_<= zguXCx{bh~GTfUh3FH$2`5%5k=lV}jeOEYq4~Ks)>BfHcmtIS_KRDE2 z|GJ-l5au4%?*kmZp7)c5)9LsB_pVW4e9!Vx_dW2ylfa!0?yta|0q$?v57>V=_)+Ym zIldk8NAn5Z4X=@W$(_iJ9mrqMIxyT{Y9E~(DGj?9x-Bhk7yOdN@K|ZEwfUB913R`2 z>~G%ghL~b0H&ME!V?PJ;V*?OqYjddG%{}`{`aN?OWf!~pa>aalr|Vwe-r7=X>4KQt zSaGv8dK!SE+Qg7Tme(oVM+5%K^Z*Y)zlLYtQbTEw?+N+@PC&|I-cS zPaNn2$)mYK>u9djKZHMy)tc*qSjfF~Uu%2&zP9MUEp4}SbnOD>Eot{zZfkRTs=57e z*WuhqTT7d=LtQ@ws4hUDoZ@6(u{2zQAMNYb2Ej@9IjkN;Vk1bKWYo# zhxRyJVE^o)@zMO*2l{eAXKXk>ad!K_cnN=Vta$d};nB1ECdURw^7!YD-0;N6@L2xr z+++!ik{dW%B8G+!fJP4tmGTqq0CbKNkK_vBU!W_}f3a&ccL08MEN9x+bxu`MY+x_4c!KPiNl%%8y;bzyD}%Y<2m2 zV)FNd^3RRR&*eJK>$Kz_n8@d`0Gt2LnEah6f6wlS{LXXEJ1?C+PCk!Y6&{c9y;FIY z5i5#o0lXxAJFK0OuFO8_Pn8#vFBq4{LH}7jVLQd_(RV22Jy%J$|FGmc%sbHhd0wh;JuLl5x+PzDS1yn1r!4D=2>&GgJDhIHXSp>y zaDA!&j*buHp=%B0imfdNCWm_`CSkA}JJ8bR-gcYYiqXw5dX1JQCiCHp)7<7h;~DNV z0Ll~41sAv-Z8+~h6!yH9e#EypPVin{7u`j^|8??HPoeQU!|@BB=5!7(a=83ail5_r z+FqG&aJ~}xwe-KEaQSl=gyXuzH*tJQ(mzHx@0rAB3&#td^^+?U;5Q{{ip+JPy5NT+ zTf#Zdg}QUpE$RKB1B&g6M7B5g@&uVMKSt*FU8{|6ow4yPobGq-+Fc)?)9IakyY}eu zZQJ?V2Dgp6+qU-h=KA|#is_xm4{Y6bD^E^aCriU4TaQe@%r7xGB^S3&CjQ`Qq$OZ0!e5v(77ig$BK9ZXlesO-F7uy3h7MRF8 z_O!WAzrfvj&YrLxm3l83cb@}IXb-5b1L~Qs6(RD&^-p>g{d8cy`ugWwY=t{_chvQ> z=bUrynYfoK%-#ML0^E26&WXyGb&uFVb)eDy#TFS( zH|4Wky~nBb|8q&c-@Us2CEb!=;eH!jALs8}#qzlvtsmjkAz#uh`NCVqxmvs6_TzIo7Jo^%Q3d?sN6ZKo&+jr$h<-AkBl*D^@+IApFT74=e-Mf+XmDp4;QQwj;<9?vl4?fQ;1QfK#zB)`n%oT&bNmMi^CP7yx z_`9MPu7}_&EZ<{a>tAdw>6U!ayXZ;edu&(7u&>CMbW6UBYqffC0WP;YkA2ilO(y&; z_opP?lAqyrnc@2+!ry1P!5Z=<-I8Bn{mXqAkzZlC?m4UXFG;uL3-3Uk52Q||`~Uds zmW^ERJ>3go3*N`S`L0V}_S>g8+poLtrH+H`;-}y{#nK4;+w>~Ng<$x{|4=$SC#a3h zV`E`|Kg}5p{ooer|IWeTv4Nrkw|T>>>2!zgSNp?+cM7>;e{RI#`@c;Or_uVMREm|r8RxeW=QpbD=bXp-3+*?B zPXdIH9a{WYqDM=6cIZbci^yA7W z{WZNurN{aQR~}5>wVbv7J5D&Kke|Q-LN4Lo8m}MqUjWHi-6`p{{!0=hJtOJZ zf1}rdLO8x))WJx6f&Z5N>)*=!YW~k@CBxemwq2RU|zt>C`?Y z`9a&i!ufbMk^XrlF6+d|F2OiXd?*R_v2Zv$6h3AoqHFEHW@b^RyC&(XVM#oPn z!#_a0MbEYN>&N+f27lp~K3Vo3;{MO|7k>U7aehN<@XM@|-_svOzrTLm_`u_*=&!>3 zM32JH`Mo&5g2C@axx+AFPYf4I?%?EDziodmhvsi7edES2m*oq8|K-I0H0S(qUE;4b zeoYYGDGbTb5t5YlQI`6L?U&adfROQNM$(P(YgW?L_$BgvNmu==Hh#T|`Kj?s>{}b( zjqx8Vlhl8L7bTBR{%hj)KW6X~{&SLkg8jS3U$sx~Aop+PDfV?<7w0!G+Rt01{m}Dknf+_5U*F99K)Vt3 z*4j_E)X&ggr=%PD%SgJRzg9^%^yk0*#Pqk`{lDl@{58kFL&@`p^A6%G?JsN8PttoN zeWS-e=I0fNXRUqwVVs{QyLQ~Kj)oseg!FC@hie(sPI(7_?SDI zhk*l*R^pfNuZW#Cn7@=(R{Z^U5&zTp{G@F3KN-K>TK$s8Z(q`l@q1d*jq!O#()+{l zS!mbC&spN@OicD2t)WZ=bXql`v1J78~wj5>B_z`e)@MYzYQKggObsI-xqIx zfx%DO*Mg*rs5902kq z^;?qqk$sLkzgU)Z!~RuCSN3;~(77qDfARdnf4#N`h5ZjE+h6$2#oDK^udiP*W+UfU z=g&m{r1xMg{eM98KU60Nf7SFa>HWnR;JEY`$J3?$L9G7A@6S@t=JE~uY>{+jACd1! zy464LPPUKCpC_t+Z%VfZR^LacJmKdW{3Lxbrk}bA9xOkR6dWO*wf^}R#P2kR-y2(_ zefWRQ`YVpWdx9dhKK`cT^*gTrWhC9OZ?~i?`+5iIz6+KZJwKE)%-Z<-m&x|cPxa>u zc=-)fac09rH5&0$U-^(vH+Q-M^?ISDoSM67}BWs=Cxl+yv@;CSQ zw-Wyf>!;R!{wmJDXEpxg6Bhm2`n__J_`A0ef3bt`cRms4?-~4y!w1H4rOAo>8ttdd zdOFebGpqenn7_yJg}?vFIR7DwKfLqQ-vED)%h_oD<=aXBVh7>x{B4|n!QfvyT0qq& zo?WBPr2o2H&WZB3+JELH-2PcV!ru?#{HF~5!msim$9JoJU_4%;XW{33n)sdOTovAb zaeLQTe|?PbPH|L*)=;kSpN`k>xbb~f(v9)GEa_@|&&d6uQ!budZG3k=%ly>(TKHAh z&~MGY#`$Y4U7a8LKG{E12K*!X^*;uN#Ef4Ct!YJ2jS;`A${Ilo8zM32JH|8kt);u`$YCy8H~`H3EdpYzo?zoj+!Wlj>m%*#oCqDSH9e=W|h zvIf8GN#a*wexgU==iC$Lx4Z_ws-$ml|Mg!%`V&10KmY4-ek)SG(SN;@q(AqS#831n z{G4yb`8nrP*fIDOP7=R>`H3EdpZ~2mzos?#r6hfW?d!dY^e1{0e$Kb!{I*E>hW=bh z-(Y^uH1QKX3O|1-&aYL`31(l?l&{~FSt=u!Cj-;49>k@5|G<&$OK*AhR` zqwsSoaekh`@0#(x;j4$o4!V1DeIt4I#_&;-$W0De{|2mwjozO*uOt4VXW{SvAkKei zE&i9l?;{;gzqY^hSx+0yKVbeDmM{FBe~I%iti?Y&F%FORm4@>X<-?vp^q=8!Hk!Ze zW5f=^-~S=;Kh0^P=X=)JfBJt%c&B(MasTPZ>wnz-b4JpQ{pYNt>;31qd0%!)>B{K- zv(3pL9)?F5Yv+sqoB0|0&$7th;PE4P1CPI~Xwk3pZ}IkVOv*RLk2y)-V1C{kiJ!|n zg`fZLaenhszQyk(jc?LEMUTSI`7!Z3ji2ABtkFK5e`WiZ`V-sdLcD&*wa+CK-@zL8shyt~=PPK3#PjhxliRmnB|b8K zEld53_EVMg4Q}6=H!(lvS!+K(iSt{L@(q5AYv`}0A47jN{i^e+3iB%~e*RD6{G1Ee zz6QU_N#f_fne-=mtm*H+l*yh zl752Yi={t|$4m4m{QUcfpPb)kyyWwHc|IqojX%lH=VXL`?CI(H`mkHljpui=k{(}P z*4CG4vEL-sNB))ZJ0t0Rl0v?u_lSJ_`L+l|(mhG! zJ-^}qC+X8E!PA*AJIgP$og(j#NrqzhdYOcve%bKvVRnt6_)nroJQpdzd3`S zq|ZzGas5M;Z}6+}SK~{-{QOzsDg6A? z%v1RJkBalFO8JKV3J+3$mVGPCPxL7KoX5oZt*pV%c@B?{8>~P7k4S%_N8#t68Ryp| z?`B4=u!ANk0*YoIorbXm9n`$pmnKV zvw!mXz?J$%p6$Z2WqxgybYp#xmh{8In0(3KDe3vK$><}%lAe)t_581-cT4)=;fc~D zynxP^%f!ajrqGE>Br6A^nP!Tq^tHT^SARP=BMWG z2-OYw^Ykko8_KzRp7$dUQtBE1&fgomipGaWed}jCsvz^M%PIWmp$|VCi#Y3#X`S^T zi(51M<1eH7b^LW>^?Ty|sZi#f@BQ`gTeAWi4EWuz?7Q+^9(=EDgY^H8BY*TU{7sHK z|D5#o%#Yt0+V`H{(}WVt@6$ zbH~k3g2h3{B=ME$_t0CZ{|&r$sqJ53H++3QxxEY)t_$mX?~5q?!0W$z`UlQ@%y$pH zoAM9M()Wluh8xqz!2?hI_|Ks#_e>;@r=z)>{{AVz_bldnVzvIw$#vV~slT43-V52N z8oaE9B;Eb-#>U%MT>Oi#;rM;GdM}|-KCeD+lIHVQCENG4Z=w13-ghPQd41pYo&ODm z-8-7xp5A!Qk4KPS$KNF9ZzCP2@Aw*pSt_Nn=7bolc- zNaCFj(faCZ=kWT5?;CG){eIo@{_#z}MeXHU8c+V|wrlUj`SH%fjkU+h%WkLj$Q`^t z{54l#`7E->o&27|uetc&_~Pyxf7LTz2aB?^UXg6?`-`6m+sB=^Ca2Fnl79d1LeRt` zYuX6#m;5%b1~d@d`^p#!ro!;5+}+sx*R=Ai@caz(;n~_j_+BCkm`}+67)+20aCkpu zhH*_Frt+kGfn8$A!!<|rx`uISmLq9$|4728aJdo|AAeUf#!nK~@GbqhA8AZ~EB}+M zzZF#vq!HuC^;l$FH^wI1o$0tiLSd7TCA+r{!7ttEzI>qrVtG z;kkxy>96v!#`L#f=x;tD{}ZEJSbsB&Yx+wn&(fckXX!7^a-^vB=r6`k1gzm(`g7+S z)8D+IzZF#vq!H^MGX62Ho6EEGr{!7tD=6OU(O-<;8hVptOMl+S8`Ix0Lw}tK`D6TK z{A1iS`2J!=--@b-){CrP78%#gWLGi|QarCm*&r!^J{>JZ@;TKTxcM5uQ#nE=WzgrByYKC7cyR{{}9~^#C zb`(EZhL2ZJDAzwRUW6#O1s{pRxHNunv@{Zax$*YxvAm^NUMwuk+ECtsSl;lr6vEt% zlsgj3JCf_mkF3J^xUa9Rt;v}F;HRnK$7LE<;rPHLe8?PiSic&nRa_&ZXo=`=OrXF< z#07g=-p_cB&z^Zjh}**HKIeB%Q{Q*yuHiDyduIIpoy+nT-%RB>Ke#D&Ke(XewX&QH zmse5g(i79dn{j34+sW}R*GKUF>DPwkdaNgj7hlYUZE(2Q+dnzcTgn}9+b?ii@YBex z;m4%g3%Sw|d}n&A3+dtC@LBHBT&aI3k`A_N*>}^v7w)^HrNwQpA=}|Q)HvP^j}4Bu z7bnKs@O#zi@cZ47%rW5?O0mU$cqcAQDujQw;Wu}~tVC;YI6pE_Y{#z|;OCq13zQS^ ziRt!eJXGR%@cH2j7EJ*8hx@d4u;4yQSNhVh*ob|wj*;jqW}49AxlKg02J9PXCi=N<>>H^3^flyH_LCp5Kga3L3n|{ejr>K% zm%mNz#AlqhMB#vahkf@ujAP$rc>&AwS)O|>$uF=UuwUVPsp}{`^A991!*ZP4DcqhUXHUO~P;Lh-HlQM+?q z&GQ4}T*l2XF3q^iTPc5;<1>t#xXgPA5i%L`;}=5FOHI4 z7Z_LhQ;MHqobzf5R~WY_{6rp?<1((wxFzAo@$NfFj>lnVjP1<0ET{YI&oGZU4p-Pu zaX#mDR6k$jb9|cpWhr0q>+H~(k1}8OtDmB9_x;rVGEb-bl35PBjPp6(`845E?DsG( z;B=3}l_!uKpYsRb@ez~KsqT`tG@80B}_Pjh^R!x;{H93EmGK8Fh& zE_2xXBa#=e9{tyo-e)*|k>j`giu)z&IqCcg@9VfAo%QZ{_|GZsk_K zbbNk&egL?ZMaFe=d3v9W`(NA;YI%B}jQd~Qc@z|Hy-&vdFK$V7GsAtd@T>h+^=j*9 zx8rtPMJMSGWqV&azW%yQ3~zb!@%qE~&V>BJ57XuRAjP<8_LKC7a4j!Me~6n? zRJrTXUyR=x?M{-d_E-K!WBOY#^f#4|zxM7F7S8(1GH!u=OMhCPrN62wcRl)x@e>8D z;amEve6unAEnP_KH>|g;U$Dq|m0#;c^f$w}rf*SsS}$^bujOgI$oYMm;mJR?-G7W!pre`!1K`bM)H+7XNL2a9}_>f)wn9-T3K$D?cj3Q`R~T;sO27e1@U&C zLcD$E>2kQzO7U6NOPT#y&gU_1c#L1X(FN%6w@F^GoAj5Sr*P9W>+j6C9s-V^`##mr zV_%D%W1JVz_&CpD_ni9obafsK7hX-}7CuBgoG&uJHn!Ie@)tQh`{4|$}K^1Zd^4?M^4-$FcaevtJa#?L3@PujoDFs|wQRGyw^aQ&Ag zPtP;B{zF`vG|=aAmLw_FqAe2%X^it{q#b zXAkk7mGaroFwSG&nIs-Qhcg^L#`rnb#~g=KEO%byaz4>t>N`hBPhYt%^ebPX@v!n` z3NJ2Dy88w4GZoTnz~R&vDZapAkHd59S6N;Y&u{KmNq(8j3)s*6E6W!?94>IU%>E+# z70#DtdCr$Ozl6U^{IeW(YvohC^l$Nd?x1lq^LCQs-bH@)$z7q{hd8~!zU0etxt%OO zxR>OY*-!ri$?@2Ce?sXQ#%DO}aC+uvl-|whS@vf*Jz&4eenI5?g7UfFrSbv}mziId z{l4Sa6QS%Y-RtC$q(K}zQ^%C z`_fJ`|8Pz?KDsv(uJX?m&io7cKBu>GdWz${Ny57qkYC{VGW%(cPjkLSk;nNmoZiXl zSq?itq;e~abG}4jkJGapE^ydqe};YcF!9N-+-~**u1A{Xd+cWz@3HT*UzYMXzw=$< zA$k)(b072lJeT_+B^nJ<|A8g$QNO~na_?F$6DK9{hYp_8P?C~_Gb6U@YvV{ zgj(}c!^KjuwfRU_n58#Nz@>C70&aZo=xBp{_=sLoHjIzv3LoW@O#R~{NqHbTngxQj zVuq}8!h~q9FoN>6Ik4YY-beZ=+{XIuB;WrT#h2N4w(!PC*mv%w zc(0Z61^X%8`33puKcoC^8>in%_yxwfj9cXJBA1h9xz3vizr^Vo##cD(F>aZ|Wlj$S z$9|R5XBeMhxdDf(?5{A+{Rx%peBr!s{BmAM^~rL4=09mand)MkG&tqg+8=Dzr1{+l zTP$pQV4n52x8||4bIm8v}-IewP;xc75D_I>u< z48=QdrE>fOG_QLszreoFep%!(Uex8aQ~rQ`_iUEOeue!^n&Ks&-${Bqb`klR8_0JC z$e-i*G>5b2yoA=*=TZ7Rr#o*axr;1sv7gdC&KEGwWt=lf>!y#s`e^ z4^zH?@m2Oc#`)}*B_I2XEU&_0=MRYQlEe$YJn?opeVOC49A9NSi2jn!udx4??_K-+ zY61r2>?KrQ^!y6@@07}~&!zDGCC)rq#x1a~&!zDE3gvJb!ry>ATFnVtit7d;*@Thez+XUAAqoYuiW{MT5|7qucSJ z`j%}wuHclzxsl<4;nL9>JE-ijt$gB+{_Y=PzQyx<4hXeryQ8-O0Ngz#=mPZ?CS!hdJpe4{Jwk3D7xk;98c9-2v zlkjroWd(uo5Q?H)d_aK@i1I3ee*5vVieMDMqJAG&9#WA<1c4S6{+Tl~_ujqTkTev; z@6Uzi?3^=aX3m_MIp^Ga&b?f2eVyc?w?-+||2o0+7EpLTa?C;_FTM2+D&0)u2fYOc z?uT>x=q;2`|F2Yk52l~L?OelePlnZZsXgA=^EU|J)8FL;i~b7VA$-waK1tMlLYU_aGvos!)_1p8_Tfhvz+0cGcPgi8^^G9 z8R75Ga3AY`Jj3dH#P0xx^NcS~&(aancO{oQTwW#gxPJ~5nDu=S!-FN^@dNE0?bUs| z*slhnV?9CkCH{-=f5H0eO4Jt{Gql)$dl+x@CgO*5f|vMjnBGACTg!BW#@6_+$cOR| zReuRshQWh?N<5WSr6){>l~y*_m}+Uv=I|LvcFdTQZ1{Y5Qb$dRhUX)>Xxzm8T$`)|@DMNb9n1w(C*~39Hq!G;{^)PG{^aU~VaUge3OSgC_JmKj~CMw%g&33iM z=Qh>)z-Xp5TQz3PfJLb0crs_V+LEi$=^4F+s1VWtDStOImrn|l~gJB4*~aL9RG_ zNKhJhL|A{3vCGrTtMES=V1mkn-|)KkSZ8xbCHSjR3^)~>>VO!LS_O}RK@UbXXc_o< zMVKDLgg4ur&Drf>I!W`X8JIW2G}=Upcy{wArWsf!LdD> zg!kbi;W2P>9PA*SN;adIraqTSWGtm6P^TE6uN<5wCP4^4hkoH6f#5YVes}{}k+%*- zfA|@ruI=dkfBy(7bt`_)Sa{O$4Kt5A={RK{b_mp)k;^0+qOch3tW%Q^#`2?1I_ZQZ zb!u`^`6N|aRL-zhe=^~F^$DicX54&13F#A@O@j}ZJRIoZ9T7GZnG0da0gG($U?0Nz z0Kr~~1lQ0KD)CM%)WF&tU{PEJk$zQUYbMo^HsqijSHI@AFRXhj0A_5iAI8V|3y!T+ zo9KfC;1@!#xIXe{dFxc2QrY@huxg%>YKP#M0|BudFKM&EHq>Aw27FUyTJOVf%N(SL zCp*0Q%+tv4@iPMX^`p5CklKfn3LCMdJWLCC>QKqix zPm(vxFaOVz<{odiJ{~{s#47^q)#9DK|Vl|MKZ$ zIq?E6U@tzL!i)fn7FPu0qDM7!ACri#w88c4W-M^MGdq%^J zw5UR(-FfGoJCX^4)x24XikGcWIB;UQL66qMD1zh+f9_jo&6f6857WleTCj4ZSwf@y z(GC+3^{n|b1M*A%rMq>!Jq=&AgK1ZLpj_;Qdqcr|llh13H7Jj<^aCK8LpT@wXh$v; zYi~BU6kwU>@q>Ai;Rhn?j@-0KwY9YdCVF69#=aP;QxXrUd!k0Y0eQjV3_i=t{!~Ao z4Q3aZM+fC^Je}<;s2$VaM88>?{?uX)%?hlM?7@?-$Uo6qL*-y!xa7k{u!?po@n_MO z*cZc|eK8Eu7WMZwhS7V2^aaL;u&~OkSXNO}RBqUVzSFTps(Ab!n!GsL74e%yFx4jR zMdd6XmqP+ey?}j)Jbr8;dgT!NaE+5i@wdQl!Pjr)%r_+4q`X|G6CJJbB#xI_`kTjm zfZ<{pCQMQYk%3@sqW^y70e(ZmH`Kk^hEgZT+GpBL9j$X=)hGOl`Nu;2k+GXI(N4L4 z2lZt%GXVrvm+%G4bPC%l^nyL0abqehaCmxP+N*UFY#d$b;TQAQI-9WVw63eIZAX1T zX{q^IV7@{8!u)+0=4`N-LT@Gg2Kk{r;?Y(SpXKxW1j=XOqmBjf)}+czSMdB7!<8+a9QhUAT;(P_<)x;6+uvQtkTsO>V&}W=+#$?h@xjt#u(xsGv_yEI; zzJlDh@+5mg8l{G>+#6Hgg)UKJqsj>A3q=u(p;HRScVtX36uxoA(Ua;;LaQhz3S9FrtAG4UA}DL<1ul7}3Cp21Yb6qJa?&jA&p) z10xz3(ZGlXMl>*@fe{V-n`_{M?*GTV3E6Hqz>%<{xB+Zpth=>26JG@zXkj0i*?&OW z6U-?y-j6^zP;B;-@YaNL?$A)*>~%2v6Yx~pmi4#XFIBXi80#1D!}lxFUR+%%a%6e2lN|c z8?u2}f-UI5IZIPc>`Ktfnet%!1NaJd$*5>^b0Z#%RI1I}e?&XIJ^f=9**;?E8G&*0 zv$V(T3@^gxK4AFm3AD35_j;*#wPpDzf~ z!*jjq?pAX)6wc>%*{KXs$G%y5^ zRv(qi06@-0uN9CzBsS!2W0}D{c(4|b}@=~!Q&ZNpM78O1G^JT z_eX%G>@OsdW&gSu0PB~mKd^t@V=3{Js(bs_2^4v_Ibr|v;iCAD!ZA6|-@@@x%JF~! z;&X+f_=?68@+aTlfB+ge`U}-ZHxDmA%1W=B>}-J8s~C>JB#5a zsn6w2srDu#AH%UY+nWa`d3-h*O>NWK;6O37$AGbTGBu6L2~M?73-XJlQxm2|efkDI z%7>FFpcbf~Ou_bKYQLe^9&L@sxIaxsGL`Mb6PU~&z%*{Z7C6^Atu`osXS}so9z270 zfT_>=T#)L>#B7E8?~VC^ez8A1nEN{nLwAz?(Y(mNL;V35bl~7%)}I_t@a&ZWif0c{ zL5PyQ07x>?_(32~@DP_vJ$i&p^98Tex7X74KlE~z#h2Ikrx9d@!h{e)R7>qApsC_IR zZlC7yix4Uld~nd$7o7j${x!|bbl1puLFhC;Abl8y9=>#_SKkyXm{0J0t+f6;{hH!{ zzKEal+9&j7{GsxCGha0FhxCUpj40B7Y5qQaW+?PE_8<74j89bT>vxO(W{;Ep3FDV; zpHI(}13z#6VD#sWKSa)x2SD;YmLKOw@RkLf98v#;{GaDH_?2%HZvZ|3UgL$Q5eUB) z&)khw5WFZJ4HPdteQcw6;mt3C`Z{pgiX*Kv&fb5yg6{^LZpKS04%i1bQ2MW^+#N;d z|KA*?)Y0(o`H2zbeEHe){=V+(&Hww4)Bn=>;(wme_{KY(W0QYB?3w*vyKc`nZf|;e z^L@{}_TJ`q|9IF<|NQNbZ`|dT{eJ)6+yA`ip46TDsrQUl;7`4R_p2%eGx?^Kszt3* zhbaZ;7vLmZE)J@jsz{7FIF+>0?pAfRQ%$+5o2uF&F4xr^M)`HM3{QsYt*UO)WC#u2 z(D%_y3|6gmwS)(!m8#)XkD4?Ic!H;VLPg<~D<}+{as|GV4hHXp{JP1YM#uv;1W!?T zFj&FM2J|>JTlMAX{pWQ+2ToTi5aXnIN6&_demh7_{)r?(421`BCLKcMlMYkH3hQvx zKt6Q}y-d}?OA$~WXojIP3C@`s_)y|oS2xA9ZxR?A(yIdkMjwEP?d@t$z?%d>-pO!c z7t)p-%xj=s&>jP0dyRbU=^PxF0X~O<>Y>R}4-k;vlv%R^JGyMb##(u(nMYyIq zr#b_6fOw{zplC{=|KY-Zr+#MoY$xp*sY^{ zM<8qP6};C44}gk&i(ZXE0DaL57*+;))$$g z`Vc!Ly`Vmb4)+(gTbZ+~Xs_&l+&;xYT-xc`G22B^`{4Mzv`_qA+6Cyw-|7ZvPvipj zzY_h7?E-T({p8Cd?JI6q&n%+j`2qL0*B=Lt&mK6D`WyA5zeDe}3%6U^TN|VImU{Ks zPtY;Rzsb%;t}WUfXs_uXj&Fi5{pi^n1`g~;ppWwPUQXZr@cnEu#YM1l>_;5e#~FL0 zewFxuc8+wcUmR@SbBy*)_E6lv(#}%tBYbKfn1hKs&9J`0@!#uLX&<;T#-lp$f0U~* zi@tXPFKaOUF8z`3oNL~L=*4*xPc^JTU=jy$Zg&Om^MD1I=*9DQjvLDryn+DZ7wE@~ z7hvbePwW?Oh#30@{b2hcp20YT_>%~a`w!*Ea*sa9ZQARNKZg)~&?EA3&zJFm$0MMR z_=#jkyUHG|z^y1Qa9o%EL%kdM)b(sHq<__whBqexe~BX;r#!ph@l5;+#4>t><{CcO zPDOFe_`5pl=$L&>7TQC8-3jl7$U-ERxF+`PjaR~#$AK;T{}71cARotZh-)N2_k*6n z`oQtk#AiRAlO8309maa(@elkP_0fMl`5m;^jF*M8#4d{CyXO~&KsD@lFRuB1PyA&3 z;W#sZz59N|;|Y(?b(6smVH|Al;y5FI&hfARDf)g*>@*rb(f_A_hTx_sj3A&Wp7)@> z;30@gDSDr1I~)dwX#>oHc-#o8XNns4t%H)q*u(KZEpqFrVxl3<5L=1JR-CkjW6Lynf~Q zF+=7V;Lk>H+#ZR)VR@y!<22k3hyI}VCi?n53sxnVFZzdL%;;F{U%bmus@NXEf|G*QN$PQ z!XHnmztGlZj4wDo zgzZ%95#^*O8Qdd5Z6-H4CtEwKygH;5k`XG}ey_v$&l$jh@M zv+#l*m41k|;hT#>vsO)+3ZVzA8&-M~!5GzHpb{e|&hw$&G*9>RMfL#J3!*~& z$9RtR%<_u;zk1Fc3hRrVihaL&&JT@!lHAB3W#%`rHn`VdK9bO#w&9KvwRjx&z z5FdQbO!8np-q=7s7^jgg#v{0lAGy2Gcp`Qq`r1%S@tgS9D0l|enFRSoZg|h6p+o$o zeMolX8qvUr21Yb6qJa?&jA&p)10xz3(ZGlXMl>*@fe{UiXkbJGBN`adz=#G$G%%up z5eQhz3S9FrtAG4UA~u-(3S`+tdF4vj=I2UYj@j!{j^Af^JQmY4$m2 zPDhzj3Q8T$2>E!AsVDfO;IkXCm5uG*_lHlVa>3h9!SR4`otgA|v~SeP(f+~$r`y3f z2RoBHzIOxduMoP<1GFzv+S=a9ghHc5mz=vvZ>$3R>RDLw|tNY*5zeKd~EBWp> z*^lT`!A3Z907EJGJmb`T@~`v0IhFNo7qu?J>Kf-<|h`_%&4qxj<{_p`~<*@#==bz+1Y3^Ue`A(Yj zH%h^&PuQ0y^a}@)-0m8(6S0qm$7nxOVF3QvkA^?fbwd1mnZG-M==<_FnyuQR@4}

{APS}K);y$Z}c&iy(!m>{+x*3?*H`-@lT1* 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

CJS=4Q&7?UDQ{BclS4f3+0~m7I0F{JS3XU)@wO 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

+ + + + + + + magento.product.product.tree + magento.product.product + + + + + + + + + diff --git a/connector_magento/views/sale_view.xml b/connector_magento/views/sale_view.xml new file mode 100644 index 000000000..8046b18d2 --- /dev/null +++ b/connector_magento/views/sale_view.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/connector_magento/views/setting_view.xml b/connector_magento/views/setting_view.xml new file mode 100644 index 000000000..6c907f311 --- /dev/null +++ b/connector_magento/views/setting_view.xml @@ -0,0 +1,36 @@ + + + + + + + open + + + + Connector Settings + connector.config.settings + + + + + + + + + + + + + diff --git a/connector_magento/views/stock_view.xml b/connector_magento/views/stock_view.xml new file mode 100644 index 000000000..a61a62da5 --- /dev/null +++ b/connector_magento/views/stock_view.xml @@ -0,0 +1,48 @@ + + + + + stock.picking.magento.form + stock.picking + + + + 0 + + + + + + + + + + + magento.stock.picking.form + magento.stock.picking + +
+ + + + + +
+
+
+ + + magento.stock.picking.tree + magento.stock.picking + + + + + + + + + +
From 87c8b6aa69781dd0fae37441b921c1ca1e7a4bf2 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Wed, 21 Jun 2017 13:29:11 +0200 Subject: [PATCH 02/31] Restructure files, split large python files --- connector_magento/__init__.py | 16 - connector_magento/__manifest__.py | 21 +- connector_magento/components/importer.py | 1 - connector_magento/models/__init__.py | 15 + .../models/account_invoice/__init__.py | 3 + .../account_invoice/common.py} | 103 +---- .../models/account_invoice/exporter.py | 109 ++++++ .../models/account_payment_mode/__init__.py | 2 + .../account_payment_mode/common.py} | 2 +- connector_magento/models/delivery/__init__.py | 2 + .../delivery/common.py} | 0 .../models/magento_backend/__init__.py | 3 + .../magento_backend/common.py} | 316 +--------------- .../models/magento_backend/importer.py | 24 ++ .../models/magento_binding/__init__.py | 2 + .../magento_binding/common.py} | 1 - .../models/magento_store/__init__.py | 3 + .../models/magento_store/common.py | 69 ++++ .../models/magento_store/importer.py | 33 ++ .../models/magento_storeview/__init__.py | 3 + .../models/magento_storeview/common.py | 99 +++++ .../models/magento_storeview/importer.py | 39 ++ .../models/magento_website/__init__.py | 3 + .../models/magento_website/common.py | 76 ++++ .../models/magento_website/importer.py | 35 ++ connector_magento/models/partner/__init__.py | 3 + connector_magento/models/partner/common.py | 211 +++++++++++ .../partner/importer.py} | 211 +---------- .../models/partner_category/__init__.py | 3 + .../partner_category/common.py} | 41 -- .../models/partner_category/importer.py | 43 +++ connector_magento/models/product/__init__.py | 3 + connector_magento/models/product/common.py | 264 +++++++++++++ .../product/importer.py} | 264 +------------ .../models/product_category/__init__.py | 3 + .../product_category/common.py} | 114 +----- .../models/product_category/importer.py | 113 ++++++ .../models/queue_job/__init__.py | 2 + .../{queue_job.py => queue_job/common.py} | 0 .../models/sale_order/__init__.py | 4 + connector_magento/models/sale_order/common.py | 294 +++++++++++++++ .../models/sale_order/exporter.py | 62 +++ .../sale_order/importer.py} | 354 +----------------- .../models/stock_picking/__init__.py | 4 + .../stock_picking/common.py} | 95 +---- .../models/stock_picking/exporter.py | 99 +++++ .../stock_picking/tracking_exporter.py} | 2 +- connector_magento/setting.py | 20 - ...iew.xml => account_payment_mode_views.xml} | 0 .../{delivery_view.xml => delivery_views.xml} | 0 .../{invoice_view.xml => invoice_views.xml} | 0 ...del_view.xml => magento_backend_views.xml} | 0 .../{partner_view.xml => partner_views.xml} | 0 ...ry_view.xml => product_category_views.xml} | 0 .../{product_view.xml => product_views.xml} | 0 connector_magento/views/sale_view.xml | 5 - connector_magento/views/setting_view.xml | 36 -- .../views/{stock_view.xml => stock_views.xml} | 0 58 files changed, 1666 insertions(+), 1564 deletions(-) create mode 100644 connector_magento/models/account_invoice/__init__.py rename connector_magento/{invoice.py => models/account_invoice/common.py} (55%) create mode 100644 connector_magento/models/account_invoice/exporter.py create mode 100644 connector_magento/models/account_payment_mode/__init__.py rename connector_magento/{account_payment_mode.py => models/account_payment_mode/common.py} (92%) create mode 100644 connector_magento/models/delivery/__init__.py rename connector_magento/{delivery.py => models/delivery/common.py} (100%) create mode 100644 connector_magento/models/magento_backend/__init__.py rename connector_magento/{magento_model.py => models/magento_backend/common.py} (56%) create mode 100644 connector_magento/models/magento_backend/importer.py create mode 100644 connector_magento/models/magento_binding/__init__.py rename connector_magento/{binding.py => models/magento_binding/common.py} (98%) create mode 100644 connector_magento/models/magento_store/__init__.py create mode 100644 connector_magento/models/magento_store/common.py create mode 100644 connector_magento/models/magento_store/importer.py create mode 100644 connector_magento/models/magento_storeview/__init__.py create mode 100644 connector_magento/models/magento_storeview/common.py create mode 100644 connector_magento/models/magento_storeview/importer.py create mode 100644 connector_magento/models/magento_website/__init__.py create mode 100644 connector_magento/models/magento_website/common.py create mode 100644 connector_magento/models/magento_website/importer.py create mode 100644 connector_magento/models/partner/__init__.py create mode 100644 connector_magento/models/partner/common.py rename connector_magento/{partner.py => models/partner/importer.py} (67%) create mode 100644 connector_magento/models/partner_category/__init__.py rename connector_magento/{partner_category.py => models/partner_category/common.py} (57%) create mode 100644 connector_magento/models/partner_category/importer.py create mode 100644 connector_magento/models/product/__init__.py create mode 100644 connector_magento/models/product/common.py rename connector_magento/{product.py => models/product/importer.py} (57%) create mode 100644 connector_magento/models/product_category/__init__.py rename connector_magento/{product_category.py => models/product_category/common.py} (51%) create mode 100644 connector_magento/models/product_category/importer.py create mode 100644 connector_magento/models/queue_job/__init__.py rename connector_magento/models/{queue_job.py => queue_job/common.py} (100%) create mode 100644 connector_magento/models/sale_order/__init__.py create mode 100644 connector_magento/models/sale_order/common.py create mode 100644 connector_magento/models/sale_order/exporter.py rename connector_magento/{sale.py => models/sale_order/importer.py} (66%) create mode 100644 connector_magento/models/stock_picking/__init__.py rename connector_magento/{stock_picking.py => models/stock_picking/common.py} (63%) create mode 100644 connector_magento/models/stock_picking/exporter.py rename connector_magento/{stock_tracking.py => models/stock_picking/tracking_exporter.py} (98%) delete mode 100644 connector_magento/setting.py rename connector_magento/views/{account_payment_mode_view.xml => account_payment_mode_views.xml} (100%) rename connector_magento/views/{delivery_view.xml => delivery_views.xml} (100%) rename connector_magento/views/{invoice_view.xml => invoice_views.xml} (100%) rename connector_magento/views/{magento_model_view.xml => magento_backend_views.xml} (100%) rename connector_magento/views/{partner_view.xml => partner_views.xml} (100%) rename connector_magento/views/{product_category_view.xml => product_category_views.xml} (100%) rename connector_magento/views/{product_view.xml => product_views.xml} (100%) delete mode 100644 connector_magento/views/sale_view.xml delete mode 100644 connector_magento/views/setting_view.xml rename connector_magento/views/{stock_view.xml => stock_views.xml} (100%) diff --git a/connector_magento/__init__.py b/connector_magento/__init__.py index 71dcdd850..576e6cd7f 100644 --- a/connector_magento/__init__.py +++ b/connector_magento/__init__.py @@ -3,22 +3,6 @@ # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from . import setting -from . import binding - from . import components - -from . import magento_model -from . import product -from . import product_category -from . import partner -from . import partner_category -from . import invoice -from . import sale -from . import delivery -from . import stock_picking -from . import stock_tracking -from . import account_payment_mode - from . import consumer from . import models diff --git a/connector_magento/__manifest__.py b/connector_magento/__manifest__.py index 70a3283a2..fb3e0093a 100644 --- a/connector_magento/__manifest__.py +++ b/connector_magento/__manifest__.py @@ -11,7 +11,6 @@ 'delivery', 'sale_stock', 'connector_ecommerce', - # 'product_multi_category', ], 'external_dependencies': { 'python': ['magento'], @@ -27,18 +26,16 @@ ], 'data': ['data/connector_magento_data.xml', 'security/ir.model.access.csv', - # 'views/setting_view.xml', - 'views/magento_model_view.xml', - 'views/product_view.xml', - 'views/product_category_view.xml', - 'views/partner_view.xml', - # 'views/sale_view.xml', - # 'views/invoice_view.xml', + 'views/magento_backend_views.xml', + 'views/product_views.xml', + 'views/product_category_views.xml', + 'views/partner_views.xml', + 'views/invoice_views.xml', 'views/connector_magento_menu.xml', - # 'views/delivery_view.xml', - # 'views/stock_view.xml', - # 'views/account_payment_mode_view.xml', + # 'views/delivery_views.xml', + 'views/stock_views.xml', + 'views/account_payment_mode_views.xml', ], 'installable': True, - 'application': True, + 'application': False, } diff --git a/connector_magento/components/importer.py b/connector_magento/components/importer.py index fc629d7ce..ead3940a7 100644 --- a/connector_magento/components/importer.py +++ b/connector_magento/components/importer.py @@ -273,7 +273,6 @@ class SimpleRecordImporter(Component): _name = 'magento.simple.record.importer' _inherit = 'magento.importer' _apply_on = [ - 'magento.website', 'magento.res.partner.category', ] diff --git a/connector_magento/models/__init__.py b/connector_magento/models/__init__.py index aab6f3a8d..64834e7f2 100644 --- a/connector_magento/models/__init__.py +++ b/connector_magento/models/__init__.py @@ -1,2 +1,17 @@ # -*- coding: utf-8 -*- +from . import magento_binding # should be loaded first for inheritance + +from . import account_invoice +from . import account_payment_mode +from . import delivery +from . import magento_backend +from . import magento_store +from . import magento_storeview +from . import magento_website +from . import partner +from . import partner_category +from . import product +from . import product_category from . import queue_job +from . import sale_order +from . import stock_picking diff --git a/connector_magento/models/account_invoice/__init__.py b/connector_magento/models/account_invoice/__init__.py new file mode 100644 index 000000000..cb97d3d7b --- /dev/null +++ b/connector_magento/models/account_invoice/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import common +from . import exporter diff --git a/connector_magento/invoice.py b/connector_magento/models/account_invoice/common.py similarity index 55% rename from connector_magento/invoice.py rename to connector_magento/models/account_invoice/common.py index 2f092351f..d346d642a 100644 --- a/connector_magento/invoice.py +++ b/connector_magento/models/account_invoice/common.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- -# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# Copyright 2013-2017 Camptocamp SA # © 2016 Sodexis -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import logging import xmlrpclib -from odoo import api, models, fields, _ +from odoo import api, models, fields from odoo.addons.component.core import Component from odoo.addons.queue_job.job import job, related_action from odoo.addons.connector.exception import IDMissingInBackend @@ -99,103 +99,6 @@ def search_read(self, filters=None, order_id=None): return super(AccountInvoiceAdapter, self).search_read(filters=filters) -class MagentoInvoiceExporter(Component): - """ Export invoices to Magento """ - _name = 'magento.account.invoice.exporter' - _inherit = 'magento.exporter' - _apply_on = ['magento.account.invoice'] - - def _export_invoice(self, external_id, lines_info, mail_notification): - if not lines_info: # invoice without any line for the sale order - return - return self.backend_adapter.create(external_id, - lines_info, - _("Invoice Created"), - mail_notification, - False) - - def _get_lines_info(self, invoice): - """ - Get the line to export to Magento. In case some lines doesn't have a - matching on Magento, we ignore them. This allow to add lines manually. - - :param invoice: invoice is an magento.account.invoice record - :type invoice: browse_record - :return: dict of {magento_product_id: quantity} - :rtype: dict - """ - item_qty = {} - # get product and quantities to invoice - # if no magento id found, do not export it - order = invoice.magento_order_id - for line in invoice.invoice_line_ids: - product = line.product_id - # find the order line with the same product - # and get the magento item_id (id of the line) - # to invoice - order_line = next((line for line in order.magento_order_line_ids - if line.product_id.id == product.id), - None) - if order_line is None: - continue - - item_id = order_line.external_id - item_qty.setdefault(item_id, 0) - item_qty[item_id] += line.quantity - return item_qty - - def run(self, binding): - """ Run the job to export the validated/paid invoice """ - - magento_order = binding.magento_order_id - magento_store = magento_order.store_id - mail_notification = magento_store.send_invoice_paid_mail - - lines_info = self._get_lines_info(binding) - external_id = None - try: - external_id = self._export_invoice(magento_order.external_id, - lines_info, - mail_notification) - except xmlrpclib.Fault as err: - # When the invoice is already created on Magento, it returns: - # - # We'll search the Magento invoice ID to store it in Odoo - if err.faultCode == 102: - _logger.debug('Invoice already exists on Magento for ' - 'sale order with magento id %s, trying to find ' - 'the invoice id.', - magento_order.external_id) - external_id = self._get_existing_invoice(magento_order) - if external_id is None: - # In that case, we let the exception bubble up so - # the user is informed of the 102 error. - # We couldn't find the invoice supposedly existing - # so an investigation may be necessary. - raise - else: - raise - # When the invoice already exists on Magento, it may return - # a 102 error (handled above) or return silently without ID - if not external_id: - # If Magento returned no ID, try to find the Magento - # invoice, but if we don't find it, let consider the job - # as done, because Magento did not raised an error - external_id = self._get_existing_invoice(magento_order) - - if external_id: - self.binder.bind(external_id, binding.id) - - def _get_existing_invoice(self, magento_order): - invoices = self.backend_adapter.search_read( - order_id=magento_order.magento_order_id) - if not invoices: - return - if len(invoices) > 1: - return - return invoices[0]['increment_id'] - - class MagentoBindingInvoiceListener(Component): _name = 'magento.binding.account.invoice.listener' _inherit = 'base.event.listener' diff --git a/connector_magento/models/account_invoice/exporter.py b/connector_magento/models/account_invoice/exporter.py new file mode 100644 index 000000000..a9ac873e0 --- /dev/null +++ b/connector_magento/models/account_invoice/exporter.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +import logging + +import xmlrpclib + +from odoo import _ +from odoo.addons.component.core import Component + +_logger = logging.getLogger(__name__) + + +class MagentoInvoiceExporter(Component): + """ Export invoices to Magento """ + _name = 'magento.account.invoice.exporter' + _inherit = 'magento.exporter' + _apply_on = ['magento.account.invoice'] + + def _export_invoice(self, external_id, lines_info, mail_notification): + if not lines_info: # invoice without any line for the sale order + return + return self.backend_adapter.create(external_id, + lines_info, + _("Invoice Created"), + mail_notification, + False) + + def _get_lines_info(self, invoice): + """ + Get the line to export to Magento. In case some lines doesn't have a + matching on Magento, we ignore them. This allow to add lines manually. + + :param invoice: invoice is an magento.account.invoice record + :type invoice: browse_record + :return: dict of {magento_product_id: quantity} + :rtype: dict + """ + item_qty = {} + # get product and quantities to invoice + # if no magento id found, do not export it + order = invoice.magento_order_id + for line in invoice.invoice_line_ids: + product = line.product_id + # find the order line with the same product + # and get the magento item_id (id of the line) + # to invoice + order_line = next((line for line in order.magento_order_line_ids + if line.product_id.id == product.id), + None) + if order_line is None: + continue + + item_id = order_line.external_id + item_qty.setdefault(item_id, 0) + item_qty[item_id] += line.quantity + return item_qty + + def run(self, binding): + """ Run the job to export the validated/paid invoice """ + + magento_order = binding.magento_order_id + magento_store = magento_order.store_id + mail_notification = magento_store.send_invoice_paid_mail + + lines_info = self._get_lines_info(binding) + external_id = None + try: + external_id = self._export_invoice(magento_order.external_id, + lines_info, + mail_notification) + except xmlrpclib.Fault as err: + # When the invoice is already created on Magento, it returns: + # + # We'll search the Magento invoice ID to store it in Odoo + if err.faultCode == 102: + _logger.debug('Invoice already exists on Magento for ' + 'sale order with magento id %s, trying to find ' + 'the invoice id.', + magento_order.external_id) + external_id = self._get_existing_invoice(magento_order) + if external_id is None: + # In that case, we let the exception bubble up so + # the user is informed of the 102 error. + # We couldn't find the invoice supposedly existing + # so an investigation may be necessary. + raise + else: + raise + # When the invoice already exists on Magento, it may return + # a 102 error (handled above) or return silently without ID + if not external_id: + # If Magento returned no ID, try to find the Magento + # invoice, but if we don't find it, let consider the job + # as done, because Magento did not raised an error + external_id = self._get_existing_invoice(magento_order) + + if external_id: + self.binder.bind(external_id, binding.id) + + def _get_existing_invoice(self, magento_order): + invoices = self.backend_adapter.search_read( + order_id=magento_order.magento_order_id) + if not invoices: + return + if len(invoices) > 1: + return + return invoices[0]['increment_id'] diff --git a/connector_magento/models/account_payment_mode/__init__.py b/connector_magento/models/account_payment_mode/__init__.py new file mode 100644 index 000000000..54ad006d5 --- /dev/null +++ b/connector_magento/models/account_payment_mode/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import common diff --git a/connector_magento/account_payment_mode.py b/connector_magento/models/account_payment_mode/common.py similarity index 92% rename from connector_magento/account_payment_mode.py rename to connector_magento/models/account_payment_mode/common.py index 8766f1f89..046ad2d58 100644 --- a/connector_magento/account_payment_mode.py +++ b/connector_magento/models/account_payment_mode/common.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2013-2017 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/models/delivery/__init__.py b/connector_magento/models/delivery/__init__.py new file mode 100644 index 000000000..54ad006d5 --- /dev/null +++ b/connector_magento/models/delivery/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import common diff --git a/connector_magento/delivery.py b/connector_magento/models/delivery/common.py similarity index 100% rename from connector_magento/delivery.py rename to connector_magento/models/delivery/common.py diff --git a/connector_magento/models/magento_backend/__init__.py b/connector_magento/models/magento_backend/__init__.py new file mode 100644 index 000000000..9d854de96 --- /dev/null +++ b/connector_magento/models/magento_backend/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import common +from . import importer diff --git a/connector_magento/magento_model.py b/connector_magento/models/magento_backend/common.py similarity index 56% rename from connector_magento/magento_model.py rename to connector_magento/models/magento_backend/common.py index 80ae50ab1..c7948f96b 100644 --- a/connector_magento/magento_model.py +++ b/connector_magento/models/magento_backend/common.py @@ -10,11 +10,9 @@ from datetime import datetime, timedelta from odoo import models, fields, api, _ from odoo.exceptions import UserError -from odoo.addons.component.core import Component -from odoo.addons.connector.components.mapper import mapping from odoo.addons.connector.checkpoint import checkpoint -from .components.backend_adapter import MagentoLocation, MagentoAPI +from ...components.backend_adapter import MagentoLocation, MagentoAPI _logger = logging.getLogger(__name__) @@ -401,315 +399,3 @@ def _get_fiscal_position_id(self): this.fiscal_position_id = ( this.specific_fiscal_position_id or this._parent.fiscal_position_id) - - -class MagentoWebsite(models.Model): - _name = 'magento.website' - _inherit = ['magento.binding', 'magento.config.specializer'] - _description = 'Magento Website' - _parent_name = 'backend_id' - - _order = 'sort_order ASC, id ASC' - - name = fields.Char(required=True, readonly=True) - code = fields.Char(readonly=True) - sort_order = fields.Integer(string='Sort Order', readonly=True) - store_ids = fields.One2many( - comodel_name='magento.store', - inverse_name='website_id', - string='Stores', - readonly=True, - ) - import_partners_from_date = fields.Datetime( - string='Import partners from date', - ) - product_binding_ids = fields.Many2many( - comodel_name='magento.product.product', - string='Magento Products', - readonly=True, - ) - - @api.multi - def import_partners(self): - import_start_time = datetime.now() - for website in self: - backend = website.backend_id - if website.import_partners_from_date: - from_string = fields.Datetime.from_string - from_date = from_string(website.import_partners_from_date) - else: - from_date = None - self.env['magento.res.partner'].with_delay().import_batch( - backend, - filters={'magento_website_id': website.external_id, - 'from_date': from_date, - 'to_date': import_start_time} - ) - # Records from Magento are imported based on their `created_at` - # date. This date is set on Magento at the beginning of a - # transaction, so if the import is run between the beginning and - # the end of a transaction, the import of a record may be - # missed. That's why we add a small buffer back in time where - # the eventually missed records will be retrieved. This also - # means that we'll have jobs that import twice the same records, - # but this is not a big deal because they will be skipped when - # the last `sync_date` is the same. - next_time = import_start_time - timedelta(seconds=IMPORT_DELTA_BUFFER) - next_time = fields.Datetime.to_string(next_time) - self.write({'import_partners_from_date': next_time}) - return True - - -class MagentoStore(models.Model): - _name = 'magento.store' - _inherit = ['magento.binding', 'magento.config.specializer'] - _description = 'Magento Store' - _parent_name = 'website_id' - - name = fields.Char() - website_id = fields.Many2one( - comodel_name='magento.website', - string='Magento Website', - required=True, - readonly=True, - ondelete='cascade', - ) - backend_id = fields.Many2one( - comodel_name='magento.backend', - related='website_id.backend_id', - string='Magento Backend', - store=True, - readonly=True, - # override 'magento.binding', can't be INSERTed if True: - required=False, - ) - storeview_ids = fields.One2many( - comodel_name='magento.storeview', - inverse_name='store_id', - string="Storeviews", - readonly=True, - ) - send_picking_done_mail = fields.Boolean( - string='Send email notification on picking done', - help="Does the picking export/creation should send " - "an email notification on Magento side?", - ) - send_invoice_paid_mail = fields.Boolean( - string='Send email notification on invoice validated/paid', - help="Does the invoice export/creation should send " - "an email notification on Magento side?", - ) - create_invoice_on = fields.Selection( - selection=[('open', 'Validate'), - ('paid', 'Paid')], - string='Create invoice on action', - default='paid', - required=True, - help="Should the invoice be created in Magento " - "when it is validated or when it is paid in Odoo?\n" - "This only takes effect if the sales order's related " - "payment method is not giving an option for this by " - "itself. (See Payment Methods)", - ) - - -class MagentoStoreview(models.Model): - _name = 'magento.storeview' - _inherit = ['magento.binding', 'magento.config.specializer'] - _description = "Magento Storeview" - _parent_name = 'store_id' - - _order = 'sort_order ASC, id ASC' - - name = fields.Char(required=True, readonly=True) - code = fields.Char(readonly=True) - enabled = fields.Boolean(string='Enabled', readonly=True) - sort_order = fields.Integer(string='Sort Order', readonly=True) - store_id = fields.Many2one(comodel_name='magento.store', - string='Store', - ondelete='cascade', - readonly=True) - lang_id = fields.Many2one(comodel_name='res.lang', string='Language') - team_id = fields.Many2one(comodel_name='crm.team', string='Sales Team') - backend_id = fields.Many2one( - comodel_name='magento.backend', - related='store_id.website_id.backend_id', - string='Magento Backend', - store=True, - readonly=True, - # override 'magento.binding', can't be INSERTed if True: - required=False, - ) - import_orders_from_date = fields.Datetime( - string='Import sale orders from date', - help='do not consider non-imported sale orders before this date. ' - 'Leave empty to import all sale orders', - ) - no_sales_order_sync = fields.Boolean( - string='No Sales Order Synchronization', - help='Check if the storeview is active in Magento ' - 'but its sales orders should not be imported.', - ) - catalog_price_tax_included = fields.Boolean(string='Prices include tax') - - @api.multi - def import_sale_orders(self): - import_start_time = datetime.now() - for storeview in self: - if storeview.no_sales_order_sync: - _logger.debug("The storeview '%s' is active in Magento " - "but is configured not to import the " - "sales orders", storeview.name) - continue - backend = storeview.backend_id - if storeview.import_orders_from_date: - from_string = fields.Datetime.from_string - from_date = from_string(storeview.import_orders_from_date) - else: - from_date = None - delayable = self.env['magento.sale.order'].with_delay(priority=1) - filters = { - 'magento_storeview_id': storeview.external_id, - 'from_date': from_date, - 'to_date': import_start_time, - } - delayable.import_batch(backend, filters=filters) - # Records from Magento are imported based on their `created_at` - # date. This date is set on Magento at the beginning of a - # transaction, so if the import is run between the beginning and - # the end of a transaction, the import of a record may be - # missed. That's why we add a small buffer back in time where - # the eventually missed records will be retrieved. This also - # means that we'll have jobs that import twice the same records, - # but this is not a big deal because the sales orders will be - # imported the first time and the jobs will be skipped on the - # subsequent imports - next_time = import_start_time - timedelta(seconds=IMPORT_DELTA_BUFFER) - next_time = fields.Datetime.to_string(next_time) - self.write({'import_orders_from_date': next_time}) - return True - - -class WebsiteAdapter(Component): - _name = 'magento.website.adapter' - _inherit = 'magento.adapter' - _apply_on = 'magento.website' - - _magento_model = 'ol_websites' - _admin_path = 'system_store/editWebsite/website_id/{id}' - - -class StoreAdapter(Component): - _name = 'magento.store.adapter' - _inherit = 'magento.adapter' - _apply_on = 'magento.store' - - _magento_model = 'ol_groups' - _admin_path = 'system_store/editGroup/group_id/{id}' - - -class StoreviewAdapter(Component): - _name = 'magento.storeview.adapter' - _inherit = 'magento.adapter' - _apply_on = 'magento.storeview' - - _magento_model = 'ol_storeviews' - _admin_path = 'system_store/editStore/store_id/{id}' - - -class MetadataBatchImporter(Component): - """ Import the records directly, without delaying the jobs. - - Import the Magento Websites, Stores, Storeviews - - They are imported directly because this is a rare and fast operation, - and we don't really bother if it blocks the UI during this time. - (that's also a mean to rapidly check the connectivity with Magento). - """ - - _name = 'magento.metadata.batch.importer' - _inherit = 'magento.direct.batch.importer' - _apply_on = [ - 'magento.website', - 'magento.store', - 'magento.storeview', - ] - - -class WebsiteImportMapper(Component): - _name = 'magento.website.mapper' - _inherit = 'magento.import.mapper' - _apply_on = 'magento.website' - - direct = [('code', 'code'), - ('sort_order', 'sort_order')] - - @mapping - def name(self, record): - name = record['name'] - if name is None: - name = _('Undefined') - return {'name': name} - - @mapping - def backend_id(self, record): - return {'backend_id': self.backend_record.id} - - -class StoreImportMapper(Component): - _name = 'magento.store.mapper' - _inherit = 'magento.import.mapper' - _apply_on = 'magento.store' - - direct = [('name', 'name')] - - @mapping - def website_id(self, record): - binder = self.binder_for(model='magento.website') - binding = binder.to_internal(record['website_id']) - return {'website_id': binding.id} - - -class StoreviewImportMapper(Component): - _name = 'magento.storeview.mapper' - _inherit = 'magento.import.mapper' - _apply_on = 'magento.storeview' - - direct = [ - ('name', 'name'), - ('code', 'code'), - ('is_active', 'enabled'), - ('sort_order', 'sort_order'), - ] - - @mapping - def store_id(self, record): - binder = self.binder_for(model='magento.store') - binding = binder.to_internal(record['group_id']) - return {'store_id': binding.id} - - -class StoreImporter(Component): - """ Import one Magento Store (create a sale.shop via _inherits) """ - - _name = 'magento.store.importer' - _inherit = 'magento.importer' - _apply_on = 'magento.store' - - def _create(self, data): - binding = super(StoreImporter, self)._create(data) - self.backend_record.add_checkpoint(binding) - return binding - - -class StoreviewImporter(Component): - """ Import one Magento Storeview """ - - _name = 'magento.storeview.importer' - _inherit = 'magento.importer' - _apply_on = 'magento.storeview' - - def _create(self, data): - binding = super(StoreviewImporter, self)._create(data) - self.backend_record.add_checkpoint(binding) - return binding diff --git a/connector_magento/models/magento_backend/importer.py b/connector_magento/models/magento_backend/importer.py new file mode 100644 index 000000000..7d3bd68b0 --- /dev/null +++ b/connector_magento/models/magento_backend/importer.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo.addons.component.core import Component + + +class MetadataBatchImporter(Component): + """ Import the records directly, without delaying the jobs. + + Import the Magento Websites, Stores, Storeviews + + They are imported directly because this is a rare and fast operation, + and we don't really bother if it blocks the UI during this time. + (that's also a mean to rapidly check the connectivity with Magento). + """ + + _name = 'magento.metadata.batch.importer' + _inherit = 'magento.direct.batch.importer' + _apply_on = [ + 'magento.website', + 'magento.store', + 'magento.storeview', + ] diff --git a/connector_magento/models/magento_binding/__init__.py b/connector_magento/models/magento_binding/__init__.py new file mode 100644 index 000000000..54ad006d5 --- /dev/null +++ b/connector_magento/models/magento_binding/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import common diff --git a/connector_magento/binding.py b/connector_magento/models/magento_binding/common.py similarity index 98% rename from connector_magento/binding.py rename to connector_magento/models/magento_binding/common.py index 06a38dbf8..7d526263e 100644 --- a/connector_magento/binding.py +++ b/connector_magento/models/magento_binding/common.py @@ -25,7 +25,6 @@ class MagentoBinding(models.AbstractModel): ondelete='restrict', ) # fields.Char because 0 is a valid Magento ID - # TODO: migration from 'external_id' external_id = fields.Char(string='ID on Magento') _sql_constraints = [ diff --git a/connector_magento/models/magento_store/__init__.py b/connector_magento/models/magento_store/__init__.py new file mode 100644 index 000000000..9d854de96 --- /dev/null +++ b/connector_magento/models/magento_store/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import common +from . import importer diff --git a/connector_magento/models/magento_store/common.py b/connector_magento/models/magento_store/common.py new file mode 100644 index 000000000..f2e6e4d2f --- /dev/null +++ b/connector_magento/models/magento_store/common.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo import models, fields +from odoo.addons.component.core import Component + + +class MagentoStore(models.Model): + _name = 'magento.store' + _inherit = ['magento.binding', 'magento.config.specializer'] + _description = 'Magento Store' + _parent_name = 'website_id' + + name = fields.Char() + website_id = fields.Many2one( + comodel_name='magento.website', + string='Magento Website', + required=True, + readonly=True, + ondelete='cascade', + ) + backend_id = fields.Many2one( + comodel_name='magento.backend', + related='website_id.backend_id', + string='Magento Backend', + store=True, + readonly=True, + # override 'magento.binding', can't be INSERTed if True: + required=False, + ) + storeview_ids = fields.One2many( + comodel_name='magento.storeview', + inverse_name='store_id', + string="Storeviews", + readonly=True, + ) + send_picking_done_mail = fields.Boolean( + string='Send email notification on picking done', + help="Does the picking export/creation should send " + "an email notification on Magento side?", + ) + send_invoice_paid_mail = fields.Boolean( + string='Send email notification on invoice validated/paid', + help="Does the invoice export/creation should send " + "an email notification on Magento side?", + ) + create_invoice_on = fields.Selection( + selection=[('open', 'Validate'), + ('paid', 'Paid')], + string='Create invoice on action', + default='paid', + required=True, + help="Should the invoice be created in Magento " + "when it is validated or when it is paid in Odoo?\n" + "This only takes effect if the sales order's related " + "payment method is not giving an option for this by " + "itself. (See Payment Methods)", + ) + + +class StoreAdapter(Component): + _name = 'magento.store.adapter' + _inherit = 'magento.adapter' + _apply_on = 'magento.store' + + _magento_model = 'ol_groups' + _admin_path = 'system_store/editGroup/group_id/{id}' diff --git a/connector_magento/models/magento_store/importer.py b/connector_magento/models/magento_store/importer.py new file mode 100644 index 000000000..219502022 --- /dev/null +++ b/connector_magento/models/magento_store/importer.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import mapping + + +class StoreImportMapper(Component): + _name = 'magento.store.mapper' + _inherit = 'magento.import.mapper' + _apply_on = 'magento.store' + + direct = [('name', 'name')] + + @mapping + def website_id(self, record): + binder = self.binder_for(model='magento.website') + binding = binder.to_internal(record['website_id']) + return {'website_id': binding.id} + + +class StoreImporter(Component): + """ Import one Magento Store (create a sale.shop via _inherits) """ + + _name = 'magento.store.importer' + _inherit = 'magento.importer' + _apply_on = 'magento.store' + + def _create(self, data): + binding = super(StoreImporter, self)._create(data) + self.backend_record.add_checkpoint(binding) + return binding diff --git a/connector_magento/models/magento_storeview/__init__.py b/connector_magento/models/magento_storeview/__init__.py new file mode 100644 index 000000000..9d854de96 --- /dev/null +++ b/connector_magento/models/magento_storeview/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import common +from . import importer diff --git a/connector_magento/models/magento_storeview/common.py b/connector_magento/models/magento_storeview/common.py new file mode 100644 index 000000000..94e046860 --- /dev/null +++ b/connector_magento/models/magento_storeview/common.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +# Copyright 2103-2017 Camptocamp SA +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +import logging + +from datetime import datetime, timedelta +from odoo import models, fields, api +from odoo.addons.component.core import Component +from ..magento_backend.common import IMPORT_DELTA_BUFFER + +_logger = logging.getLogger(__name__) + + +class MagentoStoreview(models.Model): + _name = 'magento.storeview' + _inherit = ['magento.binding', 'magento.config.specializer'] + _description = "Magento Storeview" + _parent_name = 'store_id' + + _order = 'sort_order ASC, id ASC' + + name = fields.Char(required=True, readonly=True) + code = fields.Char(readonly=True) + enabled = fields.Boolean(string='Enabled', readonly=True) + sort_order = fields.Integer(string='Sort Order', readonly=True) + store_id = fields.Many2one(comodel_name='magento.store', + string='Store', + ondelete='cascade', + readonly=True) + lang_id = fields.Many2one(comodel_name='res.lang', string='Language') + team_id = fields.Many2one(comodel_name='crm.team', string='Sales Team') + backend_id = fields.Many2one( + comodel_name='magento.backend', + related='store_id.website_id.backend_id', + string='Magento Backend', + store=True, + readonly=True, + # override 'magento.binding', can't be INSERTed if True: + required=False, + ) + import_orders_from_date = fields.Datetime( + string='Import sale orders from date', + help='do not consider non-imported sale orders before this date. ' + 'Leave empty to import all sale orders', + ) + no_sales_order_sync = fields.Boolean( + string='No Sales Order Synchronization', + help='Check if the storeview is active in Magento ' + 'but its sales orders should not be imported.', + ) + catalog_price_tax_included = fields.Boolean(string='Prices include tax') + + @api.multi + def import_sale_orders(self): + import_start_time = datetime.now() + for storeview in self: + if storeview.no_sales_order_sync: + _logger.debug("The storeview '%s' is active in Magento " + "but is configured not to import the " + "sales orders", storeview.name) + continue + backend = storeview.backend_id + if storeview.import_orders_from_date: + from_string = fields.Datetime.from_string + from_date = from_string(storeview.import_orders_from_date) + else: + from_date = None + delayable = self.env['magento.sale.order'].with_delay(priority=1) + filters = { + 'magento_storeview_id': storeview.external_id, + 'from_date': from_date, + 'to_date': import_start_time, + } + delayable.import_batch(backend, filters=filters) + # Records from Magento are imported based on their `created_at` + # date. This date is set on Magento at the beginning of a + # transaction, so if the import is run between the beginning and + # the end of a transaction, the import of a record may be + # missed. That's why we add a small buffer back in time where + # the eventually missed records will be retrieved. This also + # means that we'll have jobs that import twice the same records, + # but this is not a big deal because the sales orders will be + # imported the first time and the jobs will be skipped on the + # subsequent imports + next_time = import_start_time - timedelta(seconds=IMPORT_DELTA_BUFFER) + next_time = fields.Datetime.to_string(next_time) + self.write({'import_orders_from_date': next_time}) + return True + + +class StoreviewAdapter(Component): + _name = 'magento.storeview.adapter' + _inherit = 'magento.adapter' + _apply_on = 'magento.storeview' + + _magento_model = 'ol_storeviews' + _admin_path = 'system_store/editStore/store_id/{id}' diff --git a/connector_magento/models/magento_storeview/importer.py b/connector_magento/models/magento_storeview/importer.py new file mode 100644 index 000000000..90cacaa7c --- /dev/null +++ b/connector_magento/models/magento_storeview/importer.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import mapping + + +class MagentoStoreviewImportMapper(Component): + _name = 'magento.storeview.mapper' + _inherit = 'magento.import.mapper' + _apply_on = 'magento.storeview' + + direct = [ + ('name', 'name'), + ('code', 'code'), + ('is_active', 'enabled'), + ('sort_order', 'sort_order'), + ] + + @mapping + def store_id(self, record): + binder = self.binder_for(model='magento.store') + binding = binder.to_internal(record['group_id']) + return {'store_id': binding.id} + + +class StoreviewImporter(Component): + """ Import one Magento Storeview """ + + _name = 'magento.storeview.importer' + _inherit = 'magento.importer' + _apply_on = 'magento.storeview' + + def _create(self, data): + binding = super(StoreviewImporter, self)._create(data) + self.backend_record.add_checkpoint(binding) + return binding diff --git a/connector_magento/models/magento_website/__init__.py b/connector_magento/models/magento_website/__init__.py new file mode 100644 index 000000000..9d854de96 --- /dev/null +++ b/connector_magento/models/magento_website/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import common +from . import importer diff --git a/connector_magento/models/magento_website/common.py b/connector_magento/models/magento_website/common.py new file mode 100644 index 000000000..722a5117f --- /dev/null +++ b/connector_magento/models/magento_website/common.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +# © 2013-2017 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + + +from datetime import datetime, timedelta +from odoo import models, fields, api +from odoo.addons.component.core import Component +from ..magento_backend.common import IMPORT_DELTA_BUFFER + + +class MagentoWebsite(models.Model): + _name = 'magento.website' + _inherit = ['magento.binding', 'magento.config.specializer'] + _description = 'Magento Website' + _parent_name = 'backend_id' + + _order = 'sort_order ASC, id ASC' + + name = fields.Char(required=True, readonly=True) + code = fields.Char(readonly=True) + sort_order = fields.Integer(string='Sort Order', readonly=True) + store_ids = fields.One2many( + comodel_name='magento.store', + inverse_name='website_id', + string='Stores', + readonly=True, + ) + import_partners_from_date = fields.Datetime( + string='Import partners from date', + ) + product_binding_ids = fields.Many2many( + comodel_name='magento.product.product', + string='Magento Products', + readonly=True, + ) + + @api.multi + def import_partners(self): + import_start_time = datetime.now() + for website in self: + backend = website.backend_id + if website.import_partners_from_date: + from_string = fields.Datetime.from_string + from_date = from_string(website.import_partners_from_date) + else: + from_date = None + self.env['magento.res.partner'].with_delay().import_batch( + backend, + filters={'magento_website_id': website.external_id, + 'from_date': from_date, + 'to_date': import_start_time} + ) + # Records from Magento are imported based on their `created_at` + # date. This date is set on Magento at the beginning of a + # transaction, so if the import is run between the beginning and + # the end of a transaction, the import of a record may be + # missed. That's why we add a small buffer back in time where + # the eventually missed records will be retrieved. This also + # means that we'll have jobs that import twice the same records, + # but this is not a big deal because they will be skipped when + # the last `sync_date` is the same. + next_time = import_start_time - timedelta(seconds=IMPORT_DELTA_BUFFER) + next_time = fields.Datetime.to_string(next_time) + self.write({'import_partners_from_date': next_time}) + return True + + +class WebsiteAdapter(Component): + _name = 'magento.website.adapter' + _inherit = 'magento.adapter' + _apply_on = 'magento.website' + + _magento_model = 'ol_websites' + _admin_path = 'system_store/editWebsite/website_id/{id}' diff --git a/connector_magento/models/magento_website/importer.py b/connector_magento/models/magento_website/importer.py new file mode 100644 index 000000000..41b74938f --- /dev/null +++ b/connector_magento/models/magento_website/importer.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo import _ +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import mapping + + +class WebsiteImportMapper(Component): + _name = 'magento.website.mapper' + _inherit = 'magento.import.mapper' + _apply_on = 'magento.website' + + direct = [('code', 'code'), + ('sort_order', 'sort_order')] + + @mapping + def name(self, record): + name = record['name'] + if name is None: + name = _('Undefined') + return {'name': name} + + @mapping + def backend_id(self, record): + return {'backend_id': self.backend_record.id} + + +class MagentoWebsiteImporter(Component): + """ Import one Magento Website """ + + _name = 'magento.website.record.importer' + _inherit = 'magento.importer' + _apply_on = ['magento.website'] diff --git a/connector_magento/models/partner/__init__.py b/connector_magento/models/partner/__init__.py new file mode 100644 index 000000000..9d854de96 --- /dev/null +++ b/connector_magento/models/partner/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import common +from . import importer diff --git a/connector_magento/models/partner/common.py b/connector_magento/models/partner/common.py new file mode 100644 index 000000000..19f34d630 --- /dev/null +++ b/connector_magento/models/partner/common.py @@ -0,0 +1,211 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import logging +import xmlrpclib +from odoo import models, fields, api +from odoo.addons.queue_job.job import job +from odoo.addons.component.core import Component + +from odoo.addons.connector.exception import IDMissingInBackend +from ...components.backend_adapter import MAGENTO_DATETIME_FORMAT + +_logger = logging.getLogger(__name__) + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + magento_bind_ids = fields.One2many( + comodel_name='magento.res.partner', + inverse_name='odoo_id', + string="Magento Bindings", + ) + magento_address_bind_ids = fields.One2many( + comodel_name='magento.address', + inverse_name='odoo_id', + string="Magento Address Bindings", + ) + birthday = fields.Date(string='Birthday') + company = fields.Char(string='Company') + + @api.model + def _address_fields(self): + """ Returns the list of address fields that are synced from the + parent. + + """ + fields = super(ResPartner, self)._address_fields() + fields.append('company') + return fields + + @job(default_channel='root.magento') + @api.model + def import_batch(self, backend, filters=None): + assert 'magento_website_id' in filters, ( + 'Missing information about Magento Website') + return super(ResPartner, self).import_batch(backend, filters=filters) + + +class MagentoResPartner(models.Model): + _name = 'magento.res.partner' + _inherit = 'magento.binding' + _inherits = {'res.partner': 'odoo_id'} + _description = 'Magento Partner' + + _rec_name = 'name' + + odoo_id = fields.Many2one(comodel_name='res.partner', + string='Partner', + required=True, + ondelete='cascade') + backend_id = fields.Many2one( + related='website_id.backend_id', + comodel_name='magento.backend', + string='Magento Backend', + store=True, + readonly=True, + # override 'magento.binding', can't be INSERTed if True: + required=False, + ) + website_id = fields.Many2one(comodel_name='magento.website', + string='Magento Website', + required=True, + ondelete='restrict') + group_id = fields.Many2one(comodel_name='magento.res.partner.category', + string='Magento Group (Category)') + created_at = fields.Datetime(string='Created At (on Magento)', + readonly=True) + updated_at = fields.Datetime(string='Updated At (on Magento)', + readonly=True) + emailid = fields.Char(string='E-mail address') + taxvat = fields.Char(string='Magento VAT') + newsletter = fields.Boolean(string='Newsletter') + guest_customer = fields.Boolean(string='Guest Customer') + consider_as_company = fields.Boolean( + string='Considered as company', + help="An account imported with a 'company' in " + "the billing address is considered as a company.\n " + "The partner takes the name of the company and " + "is not merged with the billing address.", + ) + + +class MagentoAddress(models.Model): + _name = 'magento.address' + _inherit = 'magento.binding' + _inherits = {'res.partner': 'odoo_id'} + _description = 'Magento Address' + + _rec_name = 'backend_id' + + odoo_id = fields.Many2one(comodel_name='res.partner', + string='Partner', + required=True, + ondelete='cascade') + created_at = fields.Datetime(string='Created At (on Magento)', + readonly=True) + updated_at = fields.Datetime(string='Updated At (on Magento)', + readonly=True) + is_default_billing = fields.Boolean(string='Default Invoice') + is_default_shipping = fields.Boolean(string='Default Shipping') + magento_partner_id = fields.Many2one(comodel_name='magento.res.partner', + string='Magento Partner', + required=True, + ondelete='cascade') + backend_id = fields.Many2one( + related='magento_partner_id.backend_id', + comodel_name='magento.backend', + string='Magento Backend', + store=True, + readonly=True, + # override 'magento.binding', can't be INSERTed if True: + required=False, + ) + website_id = fields.Many2one( + related='magento_partner_id.website_id', + comodel_name='magento.website', + string='Magento Website', + store=True, + readonly=True, + ) + is_magento_order_address = fields.Boolean( + string='Address from a Magento Order', + ) + + _sql_constraints = [ + ('odoo_uniq', 'unique(backend_id, odoo_id)', + 'A partner address can only have one binding by backend.'), + ] + + +class PartnerAdapter(Component): + + _name = 'magento.partner.adapter' + _inherit = 'magento.adapter' + _apply_on = 'magento.res.partner' + + _magento_model = 'customer' + _admin_path = '/{model}/edit/id/{id}' + + def _call(self, method, arguments): + try: + return super(PartnerAdapter, self)._call(method, arguments) + except xmlrpclib.Fault as err: + # this is the error in the Magento API + # when the customer does not exist + if err.faultCode == 102: + raise IDMissingInBackend + else: + raise + + def search(self, filters=None, from_date=None, to_date=None, + magento_website_ids=None): + """ Search records according to some criteria and return a + list of ids + + :rtype: list + """ + if filters is None: + filters = {} + + dt_fmt = MAGENTO_DATETIME_FORMAT + if from_date is not None: + # updated_at include the created records + filters.setdefault('updated_at', {}) + filters['updated_at']['from'] = from_date.strftime(dt_fmt) + if to_date is not None: + filters.setdefault('updated_at', {}) + filters['updated_at']['to'] = to_date.strftime(dt_fmt) + if magento_website_ids is not None: + filters['website_id'] = {'in': magento_website_ids} + + # the search method is on ol_customer instead of customer + return self._call('ol_customer.search', + [filters] if filters else [{}]) + + +class AddressAdapter(Component): + + _name = 'magento.address.adapter' + _inherit = 'magento.adapter' + _apply_on = 'magento.address' + + _magento_model = 'customer_address' + + def search(self, filters=None): + """ Search records according to some criterias + and returns a list of ids + + :rtype: list + """ + return [int(row['customer_address_id']) for row + in self._call('%s.list' % self._magento_model, + [filters] if filters else [{}])] + + def create(self, customer_id, data): + """ Create a record on the external system """ + return self._call('%s.create' % self._magento_model, + [customer_id, data]) diff --git a/connector_magento/partner.py b/connector_magento/models/partner/importer.py similarity index 67% rename from connector_magento/partner.py rename to connector_magento/models/partner/importer.py index 460f1dd3b..96d02b9ff 100644 --- a/connector_magento/partner.py +++ b/connector_magento/models/partner/importer.py @@ -1,195 +1,18 @@ # -*- coding: utf-8 -*- -# © 2013 Guewen Baconnier,Camptocamp SA,Akretion -# © 2016 Sodexis -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +# Copyright 2013-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import logging -import xmlrpclib + from collections import namedtuple -from odoo import models, fields, api -from odoo.addons.queue_job.job import job from odoo.addons.component.core import AbstractComponent, Component - -from odoo.addons.connector.exception import MappingError, IDMissingInBackend +from odoo.addons.connector.exception import MappingError from odoo.addons.connector.components.mapper import mapping, only_create -from .components.backend_adapter import MAGENTO_DATETIME_FORMAT -from .components.mapper import normalize_datetime +from ...components.mapper import normalize_datetime _logger = logging.getLogger(__name__) -class ResPartner(models.Model): - _inherit = 'res.partner' - - magento_bind_ids = fields.One2many( - comodel_name='magento.res.partner', - inverse_name='odoo_id', - string="Magento Bindings", - ) - magento_address_bind_ids = fields.One2many( - comodel_name='magento.address', - inverse_name='odoo_id', - string="Magento Address Bindings", - ) - birthday = fields.Date(string='Birthday') - company = fields.Char(string='Company') - - @api.model - def _address_fields(self): - """ Returns the list of address fields that are synced from the - parent. - - """ - fields = super(ResPartner, self)._address_fields() - fields.append('company') - return fields - - @job(default_channel='root.magento') - @api.model - def import_batch(self, backend, filters=None): - assert 'magento_website_id' in filters, ( - 'Missing information about Magento Website') - return super(ResPartner, self).import_batch(backend, filters=filters) - - -class MagentoResPartner(models.Model): - _name = 'magento.res.partner' - _inherit = 'magento.binding' - _inherits = {'res.partner': 'odoo_id'} - _description = 'Magento Partner' - - _rec_name = 'name' - - odoo_id = fields.Many2one(comodel_name='res.partner', - string='Partner', - required=True, - ondelete='cascade') - backend_id = fields.Many2one( - related='website_id.backend_id', - comodel_name='magento.backend', - string='Magento Backend', - store=True, - readonly=True, - # override 'magento.binding', can't be INSERTed if True: - required=False, - ) - website_id = fields.Many2one(comodel_name='magento.website', - string='Magento Website', - required=True, - ondelete='restrict') - group_id = fields.Many2one(comodel_name='magento.res.partner.category', - string='Magento Group (Category)') - created_at = fields.Datetime(string='Created At (on Magento)', - readonly=True) - updated_at = fields.Datetime(string='Updated At (on Magento)', - readonly=True) - emailid = fields.Char(string='E-mail address') - taxvat = fields.Char(string='Magento VAT') - newsletter = fields.Boolean(string='Newsletter') - guest_customer = fields.Boolean(string='Guest Customer') - consider_as_company = fields.Boolean( - string='Considered as company', - help="An account imported with a 'company' in " - "the billing address is considered as a company.\n " - "The partner takes the name of the company and " - "is not merged with the billing address.", - ) - - -class MagentoAddress(models.Model): - _name = 'magento.address' - _inherit = 'magento.binding' - _inherits = {'res.partner': 'odoo_id'} - _description = 'Magento Address' - - _rec_name = 'backend_id' - - odoo_id = fields.Many2one(comodel_name='res.partner', - string='Partner', - required=True, - ondelete='cascade') - created_at = fields.Datetime(string='Created At (on Magento)', - readonly=True) - updated_at = fields.Datetime(string='Updated At (on Magento)', - readonly=True) - is_default_billing = fields.Boolean(string='Default Invoice') - is_default_shipping = fields.Boolean(string='Default Shipping') - magento_partner_id = fields.Many2one(comodel_name='magento.res.partner', - string='Magento Partner', - required=True, - ondelete='cascade') - backend_id = fields.Many2one( - related='magento_partner_id.backend_id', - comodel_name='magento.backend', - string='Magento Backend', - store=True, - readonly=True, - # override 'magento.binding', can't be INSERTed if True: - required=False, - ) - website_id = fields.Many2one( - related='magento_partner_id.website_id', - comodel_name='magento.website', - string='Magento Website', - store=True, - readonly=True, - ) - is_magento_order_address = fields.Boolean( - string='Address from a Magento Order', - ) - - _sql_constraints = [ - ('odoo_uniq', 'unique(backend_id, odoo_id)', - 'A partner address can only have one binding by backend.'), - ] - - -class PartnerAdapter(Component): - - _name = 'magento.partner.adapter' - _inherit = 'magento.adapter' - _apply_on = 'magento.res.partner' - - _magento_model = 'customer' - _admin_path = '/{model}/edit/id/{id}' - - def _call(self, method, arguments): - try: - return super(PartnerAdapter, self)._call(method, arguments) - except xmlrpclib.Fault as err: - # this is the error in the Magento API - # when the customer does not exist - if err.faultCode == 102: - raise IDMissingInBackend - else: - raise - - def search(self, filters=None, from_date=None, to_date=None, - magento_website_ids=None): - """ Search records according to some criteria and return a - list of ids - - :rtype: list - """ - if filters is None: - filters = {} - - dt_fmt = MAGENTO_DATETIME_FORMAT - if from_date is not None: - # updated_at include the created records - filters.setdefault('updated_at', {}) - filters['updated_at']['from'] = from_date.strftime(dt_fmt) - if to_date is not None: - filters.setdefault('updated_at', {}) - filters['updated_at']['to'] = to_date.strftime(dt_fmt) - if magento_website_ids is not None: - filters['website_id'] = {'in': magento_website_ids} - - # the search method is on ol_customer instead of customer - return self._call('ol_customer.search', - [filters] if filters else [{}]) - - class PartnerBatchImporter(Component): """ Import the Magento Partners. @@ -529,30 +352,6 @@ def consider_as_company(self, record): return {'consider_as_company': True} -class AddressAdapter(Component): - - _name = 'magento.address.adapter' - _inherit = 'magento.adapter' - _apply_on = 'magento.address' - - _magento_model = 'customer_address' - - def search(self, filters=None): - """ Search records according to some criterias - and returns a list of ids - - :rtype: list - """ - return [int(row['customer_address_id']) for row - in self._call('%s.list' % self._magento_model, - [filters] if filters else [{}])] - - def create(self, customer_id, data): - """ Create a record on the external system """ - return self._call('%s.create' % self._magento_model, - [customer_id, data]) - - class AddressImporter(Component): _name = 'magento.address.importer' diff --git a/connector_magento/models/partner_category/__init__.py b/connector_magento/models/partner_category/__init__.py new file mode 100644 index 000000000..9d854de96 --- /dev/null +++ b/connector_magento/models/partner_category/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import common +from . import importer diff --git a/connector_magento/partner_category.py b/connector_magento/models/partner_category/common.py similarity index 57% rename from connector_magento/partner_category.py rename to connector_magento/models/partner_category/common.py index 0a9d7a5a0..e5ec74aed 100644 --- a/connector_magento/partner_category.py +++ b/connector_magento/models/partner_category/common.py @@ -4,10 +4,6 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import models, fields -from odoo.addons.connector.components.mapper import ( - mapping, - only_create, -) from odoo.addons.component.core import Component @@ -53,40 +49,3 @@ def search(self, filters=None): return [int(row['customer_group_id']) for row in self._call('%s.list' % self._magento_model, [filters] if filters else [{}])] - - -class PartnerCategoryBatchImporter(Component): - """ Delay import of the records """ - _name = 'magento.partner.category.batch.importer' - _inherit = 'magento.delayed.batch.importer' - _apply_on = 'magento.res.partner.category' - - -class PartnerCategoryImportMapper(Component): - _name = 'magento.partner.category.import.mapper' - _inherit = 'magento.import.mapper' - _apply_on = 'magento.res.partner.category' - - direct = [ - ('customer_group_code', 'name'), - ('tax_class_id', 'tax_class_id'), - ] - - @mapping - def external_id(self, record): - return {'external_id': record['customer_group_id']} - - @mapping - def backend_id(self, record): - return {'backend_id': self.backend_record.id} - - @only_create - @mapping - def odoo_id(self, record): - """ Will bind the category on a existing one with the same name.""" - existing = self.env['res.partner.category'].search( - [('name', '=', record['customer_group_code'])], - limit=1, - ) - if existing: - return {'odoo_id': existing.id} diff --git a/connector_magento/models/partner_category/importer.py b/connector_magento/models/partner_category/importer.py new file mode 100644 index 000000000..8f83addb5 --- /dev/null +++ b/connector_magento/models/partner_category/importer.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo.addons.connector.components.mapper import mapping, only_create +from odoo.addons.component.core import Component + + +class PartnerCategoryBatchImporter(Component): + """ Delay import of the records """ + _name = 'magento.partner.category.batch.importer' + _inherit = 'magento.delayed.batch.importer' + _apply_on = 'magento.res.partner.category' + + +class PartnerCategoryImportMapper(Component): + _name = 'magento.partner.category.import.mapper' + _inherit = 'magento.import.mapper' + _apply_on = 'magento.res.partner.category' + + direct = [ + ('customer_group_code', 'name'), + ('tax_class_id', 'tax_class_id'), + ] + + @mapping + def external_id(self, record): + return {'external_id': record['customer_group_id']} + + @mapping + def backend_id(self, record): + return {'backend_id': self.backend_record.id} + + @only_create + @mapping + def odoo_id(self, record): + """ Will bind the category on a existing one with the same name.""" + existing = self.env['res.partner.category'].search( + [('name', '=', record['customer_group_code'])], + limit=1, + ) + if existing: + return {'odoo_id': existing.id} diff --git a/connector_magento/models/product/__init__.py b/connector_magento/models/product/__init__.py new file mode 100644 index 000000000..9d854de96 --- /dev/null +++ b/connector_magento/models/product/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import common +from . import importer diff --git a/connector_magento/models/product/common.py b/connector_magento/models/product/common.py new file mode 100644 index 000000000..2fcab4d8d --- /dev/null +++ b/connector_magento/models/product/common.py @@ -0,0 +1,264 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import logging +import xmlrpclib + +from collections import defaultdict + +from odoo import models, fields, api +from odoo.addons.connector.exception import IDMissingInBackend +from odoo.addons.component.core import Component +from odoo.addons.queue_job.job import job, related_action +from ...components.backend_adapter import MAGENTO_DATETIME_FORMAT + +_logger = logging.getLogger(__name__) + + +def chunks(items, length): + for index in xrange(0, len(items), length): + yield items[index:index + length] + + +class MagentoProductProduct(models.Model): + _name = 'magento.product.product' + _inherit = 'magento.binding' + _inherits = {'product.product': 'odoo_id'} + _description = 'Magento Product' + + @api.model + def product_type_get(self): + return [ + ('simple', 'Simple Product'), + ('configurable', 'Configurable Product'), + ('virtual', 'Virtual Product'), + ('downloadable', 'Downloadable Product'), + # XXX activate when supported + # ('grouped', 'Grouped Product'), + # ('bundle', 'Bundle Product'), + ] + + odoo_id = fields.Many2one(comodel_name='product.product', + string='Product', + required=True, + ondelete='restrict') + # XXX website_ids can be computed from categories + website_ids = fields.Many2many(comodel_name='magento.website', + string='Websites', + readonly=True) + created_at = fields.Date('Created At (on Magento)') + updated_at = fields.Date('Updated At (on Magento)') + product_type = fields.Selection(selection='product_type_get', + string='Magento Product Type', + default='simple', + required=True) + manage_stock = fields.Selection( + selection=[('use_default', 'Use Default Config'), + ('no', 'Do Not Manage Stock'), + ('yes', 'Manage Stock')], + string='Manage Stock Level', + default='use_default', + required=True, + ) + backorders = fields.Selection( + selection=[('use_default', 'Use Default Config'), + ('no', 'No Sell'), + ('yes', 'Sell Quantity < 0'), + ('yes-and-notification', 'Sell Quantity < 0 and ' + 'Use Customer Notification')], + string='Manage Inventory Backorders', + default='use_default', + required=True, + ) + magento_qty = fields.Float(string='Computed Quantity', + help="Last computed quantity to send " + "on Magento.") + no_stock_sync = fields.Boolean( + string='No Stock Synchronization', + required=False, + help="Check this to exclude the product " + "from stock synchronizations.", + ) + + RECOMPUTE_QTY_STEP = 1000 # products at a time + + @job(default_channel='root.magento') + @related_action(action='related_action_unwrap_binding') + @api.multi + def export_inventory(self, fields=None): + """ Export the inventory configuration and quantity of a product. """ + self.ensure_one() + with self.backend_id.work_on(self._name) as work: + exporter = work.component(usage='product.inventory.exporter') + return exporter.run(self, fields) + + @api.multi + def recompute_magento_qty(self): + """ Check if the quantity in the stock location configured + on the backend has changed since the last export. + + If it has changed, write the updated quantity on `magento_qty`. + The write on `magento_qty` will trigger an `on_record_write` + event that will create an export job. + + It groups the products by backend to avoid to read the backend + informations for each product. + """ + # group products by backend + backends = defaultdict(self.browse) + for product in self: + backends[product.backend_id] |= product + + for backend, products in backends.iteritems(): + self._recompute_magento_qty_backend(backend, products) + return True + + @api.multi + def _recompute_magento_qty_backend(self, backend, products, + read_fields=None): + """ Recompute the products quantity for one backend. + + If field names are passed in ``read_fields`` (as a list), they + will be read in the product that is used in + :meth:`~._magento_qty`. + + """ + if backend.product_stock_field_id: + stock_field = backend.product_stock_field_id.name + else: + stock_field = 'virtual_available' + + location = backend.warehouse_id.lot_stock_id + + product_fields = ['magento_qty', stock_field] + if read_fields: + product_fields += read_fields + + self_with_location = self.with_context(location=location.id) + for chunk_ids in chunks(products.ids, self.RECOMPUTE_QTY_STEP): + records = self_with_location.browse(chunk_ids) + for product in records.read(fields=product_fields): + new_qty = self._magento_qty(product, + backend, + location, + stock_field) + if new_qty != product['magento_qty']: + self.browse(product['id']).magento_qty = new_qty + + @api.multi + def _magento_qty(self, product, backend, location, stock_field): + """ Return the current quantity for one product. + + Can be inherited to change the way the quantity is computed, + according to a backend / location. + + If you need to read additional fields on the product, see the + ``read_fields`` argument of :meth:`~._recompute_magento_qty_backend` + + """ + return product[stock_field] + + +class ProductProduct(models.Model): + _inherit = 'product.product' + + magento_bind_ids = fields.One2many( + comodel_name='magento.product.product', + inverse_name='odoo_id', + string='Magento Bindings', + ) + + +class ProductProductAdapter(Component): + _name = 'magento.product.product.adapter' + _inherit = 'magento.adapter' + _apply_on = 'magento.product.product' + + _magento_model = 'catalog_product' + _admin_path = '/{model}/edit/id/{id}' + + def _call(self, method, arguments): + try: + return super(ProductProductAdapter, self)._call(method, arguments) + except xmlrpclib.Fault as err: + # this is the error in the Magento API + # when the product does not exist + if err.faultCode == 101: + raise IDMissingInBackend + else: + raise + + def search(self, filters=None, from_date=None, to_date=None): + """ Search records according to some criteria + and returns a list of ids + + :rtype: list + """ + if filters is None: + filters = {} + dt_fmt = MAGENTO_DATETIME_FORMAT + if from_date is not None: + filters.setdefault('updated_at', {}) + filters['updated_at']['from'] = from_date.strftime(dt_fmt) + if to_date is not None: + filters.setdefault('updated_at', {}) + filters['updated_at']['to'] = to_date.strftime(dt_fmt) + # TODO add a search entry point on the Magento API + return [int(row['product_id']) for row + in self._call('%s.list' % self._magento_model, + [filters] if filters else [{}])] + + def read(self, id, storeview_id=None, attributes=None): + """ Returns the information of a record + + :rtype: dict + """ + return self._call('ol_catalog_product.info', + [int(id), storeview_id, attributes, 'id']) + + def write(self, id, data, storeview_id=None): + """ Update records on the external system """ + # XXX actually only ol_catalog_product.update works + # the PHP connector maybe breaks the catalog_product.update + return self._call('ol_catalog_product.update', + [int(id), data, storeview_id, 'id']) + + def get_images(self, id, storeview_id=None): + return self._call('product_media.list', [int(id), storeview_id, 'id']) + + def read_image(self, id, image_name, storeview_id=None): + return self._call('product_media.info', + [int(id), image_name, storeview_id, 'id']) + + def update_inventory(self, id, data): + # product_stock.update is too slow + return self._call('oerp_cataloginventory_stock_item.update', + [int(id), data]) + + +class MagentoBindingProductListener(Component): + _name = 'magento.binding.product.product.listener' + _inherit = 'base.event.listener' + _apply_on = ['magento.product.product'] + + # fields which should not trigger an export of the products + # but an export of their inventory + INVENTORY_FIELDS = ('manage_stock', + 'backorders', + 'magento_qty', + ) + + def on_record_write(self, record, fields=None): + if self.env.context.get('connector_no_export'): + return + if record.no_stock_sync: + return + inventory_fields = list( + set(fields).intersection(self.INVENTORY_FIELDS) + ) + if inventory_fields: + record.with_delay(priority=20).export_inventory( + fields=inventory_fields + ) diff --git a/connector_magento/product.py b/connector_magento/models/product/importer.py similarity index 57% rename from connector_magento/product.py rename to connector_magento/models/product/importer.py index fb8b049c9..6cb46d348 100644 --- a/connector_magento/product.py +++ b/connector_magento/models/product/importer.py @@ -1,252 +1,22 @@ # -*- coding: utf-8 -*- -# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# Copyright 2013-2017 Camptocamp SA # © 2016 Sodexis -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import logging import urllib2 import base64 -import xmlrpclib import sys -from collections import defaultdict - -from odoo import models, fields, api, _ -from odoo.addons.connector.event import on_record_write -from odoo.addons.connector.exception import (MappingError, - InvalidDataError, - IDMissingInBackend - ) -from odoo.addons.connector.components.mapper import mapping +from odoo import _ from odoo.addons.component.core import Component -from odoo.addons.queue_job.job import job, related_action -from .components.backend_adapter import MAGENTO_DATETIME_FORMAT -from .components.mapper import normalize_datetime +from odoo.addons.connector.components.mapper import mapping +from odoo.addons.connector.exception import MappingError, InvalidDataError +from ...components.mapper import normalize_datetime _logger = logging.getLogger(__name__) -def chunks(items, length): - for index in xrange(0, len(items), length): - yield items[index:index + length] - - -class MagentoProductProduct(models.Model): - _name = 'magento.product.product' - _inherit = 'magento.binding' - _inherits = {'product.product': 'odoo_id'} - _description = 'Magento Product' - - @api.model - def product_type_get(self): - return [ - ('simple', 'Simple Product'), - ('configurable', 'Configurable Product'), - ('virtual', 'Virtual Product'), - ('downloadable', 'Downloadable Product'), - # XXX activate when supported - # ('grouped', 'Grouped Product'), - # ('bundle', 'Bundle Product'), - ] - - odoo_id = fields.Many2one(comodel_name='product.product', - string='Product', - required=True, - ondelete='restrict') - # XXX website_ids can be computed from categories - website_ids = fields.Many2many(comodel_name='magento.website', - string='Websites', - readonly=True) - created_at = fields.Date('Created At (on Magento)') - updated_at = fields.Date('Updated At (on Magento)') - product_type = fields.Selection(selection='product_type_get', - string='Magento Product Type', - default='simple', - required=True) - manage_stock = fields.Selection( - selection=[('use_default', 'Use Default Config'), - ('no', 'Do Not Manage Stock'), - ('yes', 'Manage Stock')], - string='Manage Stock Level', - default='use_default', - required=True, - ) - backorders = fields.Selection( - selection=[('use_default', 'Use Default Config'), - ('no', 'No Sell'), - ('yes', 'Sell Quantity < 0'), - ('yes-and-notification', 'Sell Quantity < 0 and ' - 'Use Customer Notification')], - string='Manage Inventory Backorders', - default='use_default', - required=True, - ) - magento_qty = fields.Float(string='Computed Quantity', - help="Last computed quantity to send " - "on Magento.") - no_stock_sync = fields.Boolean( - string='No Stock Synchronization', - required=False, - help="Check this to exclude the product " - "from stock synchronizations.", - ) - - RECOMPUTE_QTY_STEP = 1000 # products at a time - - @job(default_channel='root.magento') - @related_action(action='related_action_unwrap_binding') - @api.multi - def export_inventory(self, fields=None): - """ Export the inventory configuration and quantity of a product. """ - self.ensure_one() - with self.backend_id.work_on(self._name) as work: - exporter = work.component(usage='product.inventory.exporter') - return exporter.run(self, fields) - - @api.multi - def recompute_magento_qty(self): - """ Check if the quantity in the stock location configured - on the backend has changed since the last export. - - If it has changed, write the updated quantity on `magento_qty`. - The write on `magento_qty` will trigger an `on_record_write` - event that will create an export job. - - It groups the products by backend to avoid to read the backend - informations for each product. - """ - # group products by backend - backends = defaultdict(self.browse) - for product in self: - backends[product.backend_id] |= product - - for backend, products in backends.iteritems(): - self._recompute_magento_qty_backend(backend, products) - return True - - @api.multi - def _recompute_magento_qty_backend(self, backend, products, - read_fields=None): - """ Recompute the products quantity for one backend. - - If field names are passed in ``read_fields`` (as a list), they - will be read in the product that is used in - :meth:`~._magento_qty`. - - """ - if backend.product_stock_field_id: - stock_field = backend.product_stock_field_id.name - else: - stock_field = 'virtual_available' - - location = backend.warehouse_id.lot_stock_id - - product_fields = ['magento_qty', stock_field] - if read_fields: - product_fields += read_fields - - self_with_location = self.with_context(location=location.id) - for chunk_ids in chunks(products.ids, self.RECOMPUTE_QTY_STEP): - records = self_with_location.browse(chunk_ids) - for product in records.read(fields=product_fields): - new_qty = self._magento_qty(product, - backend, - location, - stock_field) - if new_qty != product['magento_qty']: - self.browse(product['id']).magento_qty = new_qty - - @api.multi - def _magento_qty(self, product, backend, location, stock_field): - """ Return the current quantity for one product. - - Can be inherited to change the way the quantity is computed, - according to a backend / location. - - If you need to read additional fields on the product, see the - ``read_fields`` argument of :meth:`~._recompute_magento_qty_backend` - - """ - return product[stock_field] - - -class ProductProduct(models.Model): - _inherit = 'product.product' - - magento_bind_ids = fields.One2many( - comodel_name='magento.product.product', - inverse_name='odoo_id', - string='Magento Bindings', - ) - - -class ProductProductAdapter(Component): - _name = 'magento.product.product.adapter' - _inherit = 'magento.adapter' - _apply_on = 'magento.product.product' - - _magento_model = 'catalog_product' - _admin_path = '/{model}/edit/id/{id}' - - def _call(self, method, arguments): - try: - return super(ProductProductAdapter, self)._call(method, arguments) - except xmlrpclib.Fault as err: - # this is the error in the Magento API - # when the product does not exist - if err.faultCode == 101: - raise IDMissingInBackend - else: - raise - - def search(self, filters=None, from_date=None, to_date=None): - """ Search records according to some criteria - and returns a list of ids - - :rtype: list - """ - if filters is None: - filters = {} - dt_fmt = MAGENTO_DATETIME_FORMAT - if from_date is not None: - filters.setdefault('updated_at', {}) - filters['updated_at']['from'] = from_date.strftime(dt_fmt) - if to_date is not None: - filters.setdefault('updated_at', {}) - filters['updated_at']['to'] = to_date.strftime(dt_fmt) - # TODO add a search entry point on the Magento API - return [int(row['product_id']) for row - in self._call('%s.list' % self._magento_model, - [filters] if filters else [{}])] - - def read(self, id, storeview_id=None, attributes=None): - """ Returns the information of a record - - :rtype: dict - """ - return self._call('ol_catalog_product.info', - [int(id), storeview_id, attributes, 'id']) - - def write(self, id, data, storeview_id=None): - """ Update records on the external system """ - # XXX actually only ol_catalog_product.update works - # the PHP connector maybe breaks the catalog_product.update - return self._call('ol_catalog_product.update', - [int(id), data, storeview_id, 'id']) - - def get_images(self, id, storeview_id=None): - return self._call('product_media.list', [int(id), storeview_id, 'id']) - - def read_image(self, id, image_name, storeview_id=None): - return self._call('product_media.info', - [int(id), image_name, storeview_id, 'id']) - - def update_inventory(self, id, data): - # product_stock.update is too slow - return self._call('oerp_cataloginventory_stock_item.update', - [int(id), data]) - - class ProductBatchImporter(Component): """ Import the Magento Products. @@ -599,25 +369,3 @@ def run(self, binding, fields): external_id = self.binder.to_external(binding) data = self._get_data(binding, fields) self.backend_adapter.update_inventory(external_id, data) - - -# fields which should not trigger an export of the products -# but an export of their inventory -INVENTORY_FIELDS = ('manage_stock', - 'backorders', - 'magento_qty', - ) - - -@on_record_write(model_names=['magento.product.product']) -def magento_product_modified(env, model_name, record_id, vals): - if env.context.get('connector_no_export'): - return - binding = env[model_name].browse(record_id) - if binding.no_stock_sync: - return - inventory_fields = list(set(vals).intersection(INVENTORY_FIELDS)) - if inventory_fields: - binding.with_delay(priority=20).export_inventory( - fields=inventory_fields - ) diff --git a/connector_magento/models/product_category/__init__.py b/connector_magento/models/product_category/__init__.py new file mode 100644 index 000000000..9d854de96 --- /dev/null +++ b/connector_magento/models/product_category/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import common +from . import importer diff --git a/connector_magento/product_category.py b/connector_magento/models/product_category/common.py similarity index 51% rename from connector_magento/product_category.py rename to connector_magento/models/product_category/common.py index 17fa6f5fb..8d3d1f181 100644 --- a/connector_magento/product_category.py +++ b/connector_magento/models/product_category/common.py @@ -1,17 +1,14 @@ # -*- coding: utf-8 -*- -# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# Copyright 2013-2017 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import logging import xmlrpclib from odoo import models, fields -from odoo.addons.connector.components.mapper import mapping -from odoo.addons.connector.exception import (IDMissingInBackend, - MappingError, - ) +from odoo.addons.connector.exception import IDMissingInBackend from odoo.addons.component.core import Component -from .components.backend_adapter import MAGENTO_DATETIME_FORMAT +from ...components.backend_adapter import MAGENTO_DATETIME_FORMAT _logger = logging.getLogger(__name__) @@ -134,108 +131,3 @@ def update_product(self, categ_id, product_id, position=0): def remove_product(self, categ_id, product_id): return self._call('%s.removeProduct' % self._magento_model, [categ_id, product_id, 'id']) - - -class ProductCategoryBatchImporter(Component): - """ Import the Magento Product Categories. - - For every product category in the list, a delayed job is created. - A priority is set on the jobs according to their level to rise the - chance to have the top level categories imported first. - """ - _name = 'magento.product.category.batch.importer' - _inherit = 'magento.delayed.batch.importer' - _apply_on = ['magento.product.category'] - - def _import_record(self, external_id, job_options=None): - """ Delay a job for the import """ - super(ProductCategoryBatchImporter, self)._import_record( - external_id, job_options=job_options) - - def run(self, filters=None): - """ Run the synchronization """ - from_date = filters.pop('from_date', None) - to_date = filters.pop('to_date', None) - if from_date or to_date: - updated_ids = self.backend_adapter.search(filters, - from_date=from_date, - to_date=to_date) - else: - updated_ids = None - - base_priority = 10 - - def import_nodes(tree, level=0): - for node_id, children in tree.iteritems(): - # By changing the priority, the top level category has - # more chance to be imported before the childrens. - # However, importers have to ensure that their parent is - # there and import it if it doesn't exist - if updated_ids is None or node_id in updated_ids: - job_options = { - 'priority': base_priority + level, - } - self._import_record( - node_id, job_options=job_options) - import_nodes(children, level=level + 1) - tree = self.backend_adapter.tree() - import_nodes(tree) - - -class ProductCategoryImporter(Component): - _name = 'magento.product.category.importer' - _inherit = 'magento.importer' - _apply_on = ['magento.product.category'] - - def _import_dependencies(self): - """ Import the dependencies for the record""" - record = self.magento_record - # import parent category - # the root category has a 0 parent_id - self._import_dependency(record.get('parent_id'), self.model) - - def _create(self, data): - binding = super(ProductCategoryImporter, self)._create(data) - self.backend_record.add_checkpoint(binding) - return binding - - def _after_import(self, binding): - """ Hook called at the end of the import """ - translation_importer = self.component(usage='translation.importer') - translation_importer.run(self.external_id, binding) - - -class ProductCategoryImportMapper(Component): - _name = 'magento.product.category.import.mapper' - _inherit = 'magento.import.mapper' - _apply_on = 'magento.product.category' - - direct = [ - ('description', 'description'), - ] - - @mapping - def name(self, record): - if record['level'] == '0': # top level category; has no name - return {'name': self.backend_record.name} - if record['name']: # may be empty in storeviews - return {'name': record['name']} - - @mapping - def backend_id(self, record): - return {'backend_id': self.backend_record.id} - - @mapping - def parent_id(self, record): - if not record.get('parent_id'): - return - binder = self.binder_for() - parent_binding = binder.to_internal(record['parent_id']) - - if not parent_binding: - raise MappingError("The product category with " - "magento id %s is not imported." % - record['parent_id']) - - parent = parent_binding.odoo_id - return {'parent_id': parent.id, 'magento_parent_id': parent_binding.id} diff --git a/connector_magento/models/product_category/importer.py b/connector_magento/models/product_category/importer.py new file mode 100644 index 000000000..2c20b5bbc --- /dev/null +++ b/connector_magento/models/product_category/importer.py @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo.addons.component.core import Component +from odoo.addons.connector.components.mapper import mapping +from odoo.addons.connector.exception import MappingError + + +class ProductCategoryBatchImporter(Component): + """ Import the Magento Product Categories. + + For every product category in the list, a delayed job is created. + A priority is set on the jobs according to their level to rise the + chance to have the top level categories imported first. + """ + _name = 'magento.product.category.batch.importer' + _inherit = 'magento.delayed.batch.importer' + _apply_on = ['magento.product.category'] + + def _import_record(self, external_id, job_options=None): + """ Delay a job for the import """ + super(ProductCategoryBatchImporter, self)._import_record( + external_id, job_options=job_options) + + def run(self, filters=None): + """ Run the synchronization """ + from_date = filters.pop('from_date', None) + to_date = filters.pop('to_date', None) + if from_date or to_date: + updated_ids = self.backend_adapter.search(filters, + from_date=from_date, + to_date=to_date) + else: + updated_ids = None + + base_priority = 10 + + def import_nodes(tree, level=0): + for node_id, children in tree.iteritems(): + # By changing the priority, the top level category has + # more chance to be imported before the childrens. + # However, importers have to ensure that their parent is + # there and import it if it doesn't exist + if updated_ids is None or node_id in updated_ids: + job_options = { + 'priority': base_priority + level, + } + self._import_record( + node_id, job_options=job_options) + import_nodes(children, level=level + 1) + tree = self.backend_adapter.tree() + import_nodes(tree) + + +class ProductCategoryImporter(Component): + _name = 'magento.product.category.importer' + _inherit = 'magento.importer' + _apply_on = ['magento.product.category'] + + def _import_dependencies(self): + """ Import the dependencies for the record""" + record = self.magento_record + # import parent category + # the root category has a 0 parent_id + self._import_dependency(record.get('parent_id'), self.model) + + def _create(self, data): + binding = super(ProductCategoryImporter, self)._create(data) + self.backend_record.add_checkpoint(binding) + return binding + + def _after_import(self, binding): + """ Hook called at the end of the import """ + translation_importer = self.component(usage='translation.importer') + translation_importer.run(self.external_id, binding) + + +class ProductCategoryImportMapper(Component): + _name = 'magento.product.category.import.mapper' + _inherit = 'magento.import.mapper' + _apply_on = 'magento.product.category' + + direct = [ + ('description', 'description'), + ] + + @mapping + def name(self, record): + if record['level'] == '0': # top level category; has no name + return {'name': self.backend_record.name} + if record['name']: # may be empty in storeviews + return {'name': record['name']} + + @mapping + def backend_id(self, record): + return {'backend_id': self.backend_record.id} + + @mapping + def parent_id(self, record): + if not record.get('parent_id'): + return + binder = self.binder_for() + parent_binding = binder.to_internal(record['parent_id']) + + if not parent_binding: + raise MappingError("The product category with " + "magento id %s is not imported." % + record['parent_id']) + + parent = parent_binding.odoo_id + return {'parent_id': parent.id, 'magento_parent_id': parent_binding.id} diff --git a/connector_magento/models/queue_job/__init__.py b/connector_magento/models/queue_job/__init__.py new file mode 100644 index 000000000..54ad006d5 --- /dev/null +++ b/connector_magento/models/queue_job/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import common diff --git a/connector_magento/models/queue_job.py b/connector_magento/models/queue_job/common.py similarity index 100% rename from connector_magento/models/queue_job.py rename to connector_magento/models/queue_job/common.py diff --git a/connector_magento/models/sale_order/__init__.py b/connector_magento/models/sale_order/__init__.py new file mode 100644 index 000000000..fc680c60d --- /dev/null +++ b/connector_magento/models/sale_order/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +from . import common +from . import importer +from . import exporter diff --git a/connector_magento/models/sale_order/common.py b/connector_magento/models/sale_order/common.py new file mode 100644 index 000000000..7808a3c9b --- /dev/null +++ b/connector_magento/models/sale_order/common.py @@ -0,0 +1,294 @@ +# -*- coding: utf-8 -*- +# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# © 2016 Sodexis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import logging +import xmlrpclib + +import odoo.addons.decimal_precision as dp + +from odoo import models, fields, api, _ +from odoo.addons.connector.exception import IDMissingInBackend +from odoo.addons.queue_job.job import job +from odoo.addons.component.core import Component + +from ...components.backend_adapter import MAGENTO_DATETIME_FORMAT + +_logger = logging.getLogger(__name__) + + +class MagentoSaleOrder(models.Model): + _name = 'magento.sale.order' + _inherit = 'magento.binding' + _description = 'Magento Sale Order' + _inherits = {'sale.order': 'odoo_id'} + + odoo_id = fields.Many2one(comodel_name='sale.order', + string='Sale Order', + required=True, + ondelete='cascade') + magento_order_line_ids = fields.One2many( + comodel_name='magento.sale.order.line', + inverse_name='magento_order_id', + string='Magento Order Lines' + ) + total_amount = fields.Float( + string='Total amount', + digits_compute=dp.get_precision('Account') + ) + total_amount_tax = fields.Float( + string='Total amount w. tax', + digits_compute=dp.get_precision('Account') + ) + magento_order_id = fields.Integer(string='Magento Order ID', + help="'order_id' field in Magento") + # when a sale order is modified, Magento creates a new one, cancels + # the parent order and link the new one to the canceled parent + magento_parent_id = fields.Many2one(comodel_name='magento.sale.order', + string='Parent Magento Order') + storeview_id = fields.Many2one(comodel_name='magento.storeview', + string='Magento Storeview') + store_id = fields.Many2one(related='storeview_id.store_id', + string='Storeview', + readonly=True) + + @job(default_channel='root.magento') + @api.multi + def export_state_change(self, allowed_states=None, + comment=None, notify=None): + """ Change state of a sales order on Magento """ + self.ensure_one() + with self.backend_id.work_on(self._name) as work: + exporter = work.component(usage='sale.state.exporter') + return exporter.run(self, allowed_states=allowed_states, + comment=comment, notify=notify) + + @job(default_channel='root.magento') + @api.model + def import_batch(self, backend, filters=None): + """ Prepare the import of Sales Orders from Magento """ + assert 'magento_storeview_id' in filters, ('Missing information about ' + 'Magento Storeview') + _super = super(MagentoSaleOrder, self) + return _super.import_batch(backend, filters=filters) + + +class SaleOrder(models.Model): + _inherit = 'sale.order' + + magento_bind_ids = fields.One2many( + comodel_name='magento.sale.order', + inverse_name='odoo_id', + string="Magento Bindings", + ) + + @api.one + @api.depends('magento_bind_ids', 'magento_bind_ids.magento_parent_id') + def get_parent_id(self): + """ Return the parent order. + + For Magento sales orders, the magento parent order is stored + in the binding, get it from there. + """ + super(SaleOrder, self).get_parent_id() + for order in self: + if not order.magento_bind_ids: + continue + # assume we only have 1 SO in Odoo for 1 SO in Magento + assert len(order.magento_bind_ids) == 1 + magento_order = order.magento_bind_ids[0] + if magento_order.magento_parent_id: + self.parent_id = magento_order.magento_parent_id.odoo_id + + def _magento_cancel(self): + """ Cancel sales order on Magento + + Do not export the other state changes, Magento handles them itself + when it receives shipments and invoices. + """ + for order in self: + old_state = order.state + if old_state == 'cancel': + continue # skip if already canceled + for binding in order.magento_bind_ids: + job_descr = _("Cancel sales order %s") % (binding.external_id,) + binding.with_delay( + description=job_descr + ).export_state_change(allowed_states=['cancel']) + + @api.multi + def write(self, vals): + if vals.get('state') == 'cancel': + self._magento_cancel() + return super(SaleOrder, self).write(vals) + + def _magento_link_binding_of_copy(self, new_id): + # link binding of the canceled order to the new order, so the + # operations done on the new order will be sync'ed with Magento + binding_model = self.env['magento.sale.order'] + bindings = binding_model.search([('odoo_id', '=', self.id)]) + bindings.write({'odoo_id': new_id}) + + for binding in bindings: + # the sales' status on Magento is likely 'canceled' + # so we will export the new status (pending, processing, ...) + job_descr = _("Reopen sales order %s") % (binding.external_id,) + binding.with_delay( + description=job_descr + ).export_state_change() + + @api.multi + def copy_quotation(self): + self_copy = self.with_context(__copy_from_quotation=True) + result = super(SaleOrder, self_copy).copy_quotation() + self._magento_link_binding_of_copy(result['res_id']) + return result + + +class MagentoSaleOrderLine(models.Model): + _name = 'magento.sale.order.line' + _inherit = 'magento.binding' + _description = 'Magento Sale Order Line' + _inherits = {'sale.order.line': 'odoo_id'} + + magento_order_id = fields.Many2one(comodel_name='magento.sale.order', + string='Magento Sale Order', + required=True, + ondelete='cascade', + select=True) + odoo_id = fields.Many2one(comodel_name='sale.order.line', + string='Sale Order Line', + required=True, + ondelete='cascade') + backend_id = fields.Many2one( + related='magento_order_id.backend_id', + string='Magento Backend', + readonly=True, + store=True, + # override 'magento.binding', can't be INSERTed if True: + required=False, + ) + tax_rate = fields.Float(string='Tax Rate', + digits_compute=dp.get_precision('Account')) + notes = fields.Char() + + @api.model + def create(self, vals): + magento_order_id = vals['magento_order_id'] + binding = self.env['magento.sale.order'].browse(magento_order_id) + vals['order_id'] = binding.odoo_id.id + binding = super(MagentoSaleOrderLine, self).create(vals) + # FIXME triggers function field + # The amounts (amount_total, ...) computed fields on 'sale.order' are + # not triggered when magento.sale.order.line are created. + # It might be a v8 regression, because they were triggered in + # v7. Before getting a better correction, force the computation + # by writing again on the line. + # line = binding.odoo_id + # line.write({'price_unit': line.price_unit}) + return binding + + +class SaleOrderLine(models.Model): + _inherit = 'sale.order.line' + + magento_bind_ids = fields.One2many( + comodel_name='magento.sale.order.line', + inverse_name='odoo_id', + string="Magento Bindings", + ) + + @api.model + def create(self, vals): + old_line_id = None + if self.env.context.get('__copy_from_quotation'): + # when we are copying a sale.order from a canceled one, + # the id of the copied line is inserted in the vals + # in `copy_data`. + old_line_id = vals.pop('__copy_from_line_id', None) + new_line = super(SaleOrderLine, self).create(vals) + if old_line_id: + # link binding of the canceled order lines to the new order + # lines, happens when we are using the 'New Copy of + # Quotation' button on a canceled sales order + binding_model = self.env['magento.sale.order.line'] + bindings = binding_model.search([('odoo_id', '=', old_line_id)]) + if bindings: + bindings.write({'odoo_id': new_line.id}) + return new_line + + @api.multi + def copy_data(self, default=None): + data = super(SaleOrderLine, self).copy_data(default=default) + if self.env.context.get('__copy_from_quotation'): + # copy_data is called by `copy` of the sale.order which + # builds a dict for the full new sale order, so we lose the + # association between the old and the new line. + # Keep a trace of the old id in the vals that will be passed + # to `create`, from there, we'll be able to update the + # Magento bindings, modifying the relation from the old to + # the new line. + data['__copy_from_line_id'] = id + return data + + +class SaleOrderAdapter(Component): + _name = 'magento.sale.order.adapter' + _inherit = 'magento.adapter' + _apply_on = 'magento.sale.order' + + _magento_model = 'sales_order' + _admin_path = '{model}/view/order_id/{id}' + + def _call(self, method, arguments): + try: + return super(SaleOrderAdapter, self)._call(method, arguments) + except xmlrpclib.Fault as err: + # this is the error in the Magento API + # when the sales order does not exist + if err.faultCode == 100: + raise IDMissingInBackend + else: + raise + + def search(self, filters=None, from_date=None, to_date=None, + magento_storeview_ids=None): + """ Search records according to some criteria + and returns a list of ids + + :rtype: list + """ + if filters is None: + filters = {} + dt_fmt = MAGENTO_DATETIME_FORMAT + if from_date is not None: + filters.setdefault('created_at', {}) + filters['created_at']['from'] = from_date.strftime(dt_fmt) + if to_date is not None: + filters.setdefault('created_at', {}) + filters['created_at']['to'] = to_date.strftime(dt_fmt) + if magento_storeview_ids is not None: + filters['store_id'] = {'in': magento_storeview_ids} + + arguments = {'imported': False, + # 'limit': 200, + 'filters': filters, + } + return super(SaleOrderAdapter, self).search(arguments) + + def read(self, id, attributes=None): + """ Returns the information of a record + + :rtype: dict + """ + record = self._call('%s.info' % self._magento_model, + [id, attributes]) + return record + + def get_parent(self, id): + return self._call('%s.get_parent' % self._magento_model, [id]) + + def add_comment(self, id, status, comment=None, notify=False): + return self._call('%s.addComment' % self._magento_model, + [id, status, comment, notify]) diff --git a/connector_magento/models/sale_order/exporter.py b/connector_magento/models/sale_order/exporter.py new file mode 100644 index 000000000..dd35e152d --- /dev/null +++ b/connector_magento/models/sale_order/exporter.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo import _ +from odoo.addons.component.core import Component + + +class StateExporter(Component): + _name = 'magento.sale.state.exporter' + _inherit = 'base.exporter' + _usage = 'sale.state.exporter' + _apply_on = 'magento.sale.order' + + ORDER_STATUS_MAPPING = { # used in connector_magento_order_comment + 'draft': 'pending', + 'manual': 'processing', + 'progress': 'processing', + 'shipping_except': 'processing', + 'invoice_except': 'processing', + 'done': 'complete', + 'cancel': 'canceled', + 'waiting_date': 'holded' + } + + def run(self, binding, allowed_states=None, comment=None, notify=False): + """ Change the status of the sales order on Magento. + + It adds a comment on Magento with a status. + Sales orders on Magento have a state and a status. + The state is related to the sale workflow, and the status can be + modified liberaly. We change only the status because Magento + handle the state itself. + + When a sales order is modified, if we used the ``sales_order.cancel`` + API method, we would not be able to revert the cancellation. When + we send ``cancel`` as a status change with a new comment, we are still + able to change the status again and to create shipments and invoices + because the state is still ``new`` or ``processing``. + + :param binding: the binding record of the sales order + :param allowed_states: list of Odoo states that are allowed + for export. If empty, it will export any + state. + :param comment: Comment to display on Magento for the state change + :param notify: When True, Magento will send an email with the + comment + """ + state = binding.state + if allowed_states and state not in allowed_states: + return _('State %s is not exported.') % state + external_id = self.binder.to_external(binding) + if not external_id: + return _('Sale is not linked with a Magento sales order') + magento_state = self.ORDER_STATUS_MAPPING[state] + record = self.backend_adapter.read(external_id) + if record['status'] == magento_state: + return _('Magento sales order is already ' + 'in state %s') % magento_state + self.backend_adapter.add_comment(external_id, magento_state, + comment=comment, + notify=notify) diff --git a/connector_magento/sale.py b/connector_magento/models/sale_order/importer.py similarity index 66% rename from connector_magento/sale.py rename to connector_magento/models/sale_order/importer.py index 0840950e4..55ee82402 100644 --- a/connector_magento/sale.py +++ b/connector_magento/models/sale_order/importer.py @@ -1,305 +1,21 @@ # -*- coding: utf-8 -*- -# © 2013 Guewen Baconnier,Camptocamp SA,Akretion -# © 2016 Sodexis -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +# Copyright 2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import logging -import xmlrpclib from datetime import datetime, timedelta -import odoo.addons.decimal_precision as dp - -from odoo import models, fields, api, _ -from odoo.addons.connector.exception import IDMissingInBackend -from odoo.addons.queue_job.job import job -from odoo.addons.queue_job.exception import NothingToDoJob, FailedJobError -from odoo.addons.connector.components.mapper import mapping +from odoo import _ from odoo.addons.component.core import Component - -from .components.backend_adapter import MAGENTO_DATETIME_FORMAT -from .components.mapper import normalize_datetime -from .exception import OrderImportRuleRetry +from odoo.addons.connector.components.mapper import mapping +from odoo.addons.queue_job.exception import NothingToDoJob, FailedJobError +from ...components.mapper import normalize_datetime +from ...exception import OrderImportRuleRetry _logger = logging.getLogger(__name__) -class MagentoSaleOrder(models.Model): - _name = 'magento.sale.order' - _inherit = 'magento.binding' - _description = 'Magento Sale Order' - _inherits = {'sale.order': 'odoo_id'} - - odoo_id = fields.Many2one(comodel_name='sale.order', - string='Sale Order', - required=True, - ondelete='cascade') - magento_order_line_ids = fields.One2many( - comodel_name='magento.sale.order.line', - inverse_name='magento_order_id', - string='Magento Order Lines' - ) - total_amount = fields.Float( - string='Total amount', - digits_compute=dp.get_precision('Account') - ) - total_amount_tax = fields.Float( - string='Total amount w. tax', - digits_compute=dp.get_precision('Account') - ) - magento_order_id = fields.Integer(string='Magento Order ID', - help="'order_id' field in Magento") - # when a sale order is modified, Magento creates a new one, cancels - # the parent order and link the new one to the canceled parent - magento_parent_id = fields.Many2one(comodel_name='magento.sale.order', - string='Parent Magento Order') - storeview_id = fields.Many2one(comodel_name='magento.storeview', - string='Magento Storeview') - store_id = fields.Many2one(related='storeview_id.store_id', - string='Storeview', - readonly=True) - - @job(default_channel='root.magento') - @api.multi - def export_state_change(self, allowed_states=None, - comment=None, notify=None): - """ Change state of a sales order on Magento """ - self.ensure_one() - with self.backend_id.work_on(self._name) as work: - exporter = work.component(usage='sale.state.exporter') - return exporter.run(self, allowed_states=allowed_states, - comment=comment, notify=notify) - - @job(default_channel='root.magento') - @api.model - def import_batch(self, backend, filters=None): - """ Prepare the import of Sales Orders from Magento """ - assert 'magento_storeview_id' in filters, ('Missing information about ' - 'Magento Storeview') - _super = super(MagentoSaleOrder, self) - return _super.import_batch(backend, filters=filters) - - -class SaleOrder(models.Model): - _inherit = 'sale.order' - - magento_bind_ids = fields.One2many( - comodel_name='magento.sale.order', - inverse_name='odoo_id', - string="Magento Bindings", - ) - - @api.one - @api.depends('magento_bind_ids', 'magento_bind_ids.magento_parent_id') - def get_parent_id(self): - """ Return the parent order. - - For Magento sales orders, the magento parent order is stored - in the binding, get it from there. - """ - super(SaleOrder, self).get_parent_id() - for order in self: - if not order.magento_bind_ids: - continue - # assume we only have 1 SO in Odoo for 1 SO in Magento - assert len(order.magento_bind_ids) == 1 - magento_order = order.magento_bind_ids[0] - if magento_order.magento_parent_id: - self.parent_id = magento_order.magento_parent_id.odoo_id - - def _magento_cancel(self): - """ Cancel sales order on Magento - - Do not export the other state changes, Magento handles them itself - when it receives shipments and invoices. - """ - for order in self: - old_state = order.state - if old_state == 'cancel': - continue # skip if already canceled - for binding in order.magento_bind_ids: - job_descr = _("Cancel sales order %s") % (binding.external_id,) - binding.with_delay( - description=job_descr - ).export_state_change(allowed_states=['cancel']) - - @api.multi - def write(self, vals): - if vals.get('state') == 'cancel': - self._magento_cancel() - return super(SaleOrder, self).write(vals) - - def _magento_link_binding_of_copy(self, new_id): - # link binding of the canceled order to the new order, so the - # operations done on the new order will be sync'ed with Magento - binding_model = self.env['magento.sale.order'] - bindings = binding_model.search([('odoo_id', '=', self.id)]) - bindings.write({'odoo_id': new_id}) - - for binding in bindings: - # the sales' status on Magento is likely 'canceled' - # so we will export the new status (pending, processing, ...) - job_descr = _("Reopen sales order %s") % (binding.external_id,) - binding.with_delay( - description=job_descr - ).export_state_change() - - @api.multi - def copy_quotation(self): - self_copy = self.with_context(__copy_from_quotation=True) - result = super(SaleOrder, self_copy).copy_quotation() - self._magento_link_binding_of_copy(result['res_id']) - return result - - -class MagentoSaleOrderLine(models.Model): - _name = 'magento.sale.order.line' - _inherit = 'magento.binding' - _description = 'Magento Sale Order Line' - _inherits = {'sale.order.line': 'odoo_id'} - - magento_order_id = fields.Many2one(comodel_name='magento.sale.order', - string='Magento Sale Order', - required=True, - ondelete='cascade', - select=True) - odoo_id = fields.Many2one(comodel_name='sale.order.line', - string='Sale Order Line', - required=True, - ondelete='cascade') - backend_id = fields.Many2one( - related='magento_order_id.backend_id', - string='Magento Backend', - readonly=True, - store=True, - # override 'magento.binding', can't be INSERTed if True: - required=False, - ) - tax_rate = fields.Float(string='Tax Rate', - digits_compute=dp.get_precision('Account')) - notes = fields.Char() - - @api.model - def create(self, vals): - magento_order_id = vals['magento_order_id'] - binding = self.env['magento.sale.order'].browse(magento_order_id) - vals['order_id'] = binding.odoo_id.id - binding = super(MagentoSaleOrderLine, self).create(vals) - # FIXME triggers function field - # The amounts (amount_total, ...) computed fields on 'sale.order' are - # not triggered when magento.sale.order.line are created. - # It might be a v8 regression, because they were triggered in - # v7. Before getting a better correction, force the computation - # by writing again on the line. - # line = binding.odoo_id - # line.write({'price_unit': line.price_unit}) - return binding - - -class SaleOrderLine(models.Model): - _inherit = 'sale.order.line' - - magento_bind_ids = fields.One2many( - comodel_name='magento.sale.order.line', - inverse_name='odoo_id', - string="Magento Bindings", - ) - - @api.model - def create(self, vals): - old_line_id = None - if self.env.context.get('__copy_from_quotation'): - # when we are copying a sale.order from a canceled one, - # the id of the copied line is inserted in the vals - # in `copy_data`. - old_line_id = vals.pop('__copy_from_line_id', None) - new_line = super(SaleOrderLine, self).create(vals) - if old_line_id: - # link binding of the canceled order lines to the new order - # lines, happens when we are using the 'New Copy of - # Quotation' button on a canceled sales order - binding_model = self.env['magento.sale.order.line'] - bindings = binding_model.search([('odoo_id', '=', old_line_id)]) - if bindings: - bindings.write({'odoo_id': new_line.id}) - return new_line - - @api.multi - def copy_data(self, default=None): - data = super(SaleOrderLine, self).copy_data(default=default) - if self.env.context.get('__copy_from_quotation'): - # copy_data is called by `copy` of the sale.order which - # builds a dict for the full new sale order, so we lose the - # association between the old and the new line. - # Keep a trace of the old id in the vals that will be passed - # to `create`, from there, we'll be able to update the - # Magento bindings, modifying the relation from the old to - # the new line. - data['__copy_from_line_id'] = id - return data - - -class SaleOrderAdapter(Component): - _name = 'magento.sale.order.adapter' - _inherit = 'magento.adapter' - _apply_on = 'magento.sale.order' - - _magento_model = 'sales_order' - _admin_path = '{model}/view/order_id/{id}' - - def _call(self, method, arguments): - try: - return super(SaleOrderAdapter, self)._call(method, arguments) - except xmlrpclib.Fault as err: - # this is the error in the Magento API - # when the sales order does not exist - if err.faultCode == 100: - raise IDMissingInBackend - else: - raise - - def search(self, filters=None, from_date=None, to_date=None, - magento_storeview_ids=None): - """ Search records according to some criteria - and returns a list of ids - - :rtype: list - """ - if filters is None: - filters = {} - dt_fmt = MAGENTO_DATETIME_FORMAT - if from_date is not None: - filters.setdefault('created_at', {}) - filters['created_at']['from'] = from_date.strftime(dt_fmt) - if to_date is not None: - filters.setdefault('created_at', {}) - filters['created_at']['to'] = to_date.strftime(dt_fmt) - if magento_storeview_ids is not None: - filters['store_id'] = {'in': magento_storeview_ids} - - arguments = {'imported': False, - # 'limit': 200, - 'filters': filters, - } - return super(SaleOrderAdapter, self).search(arguments) - - def read(self, id, attributes=None): - """ Returns the information of a record - - :rtype: dict - """ - record = self._call('%s.info' % self._magento_model, - [id, attributes]) - return record - - def get_parent(self, id): - return self._call('%s.get_parent' % self._magento_model, [id]) - - def add_comment(self, id, status, comment=None, notify=False): - return self._call('%s.addComment' % self._magento_model, - [id, status, comment, notify]) - - class SaleOrderBatchImporter(Component): _name = 'magento.sale.order.batch.importer' _inherit = 'magento.delayed.batch.importer' @@ -961,59 +677,3 @@ def price(self, record): else: result['price_unit'] = base_row_total / qty_ordered return result - - -class StateExporter(Component): - _name = 'magento.sale.state.exporter' - _inherit = 'base.exporter' - _usage = 'sale.state.exporter' - _apply_on = 'magento.sale.order' - - ORDER_STATUS_MAPPING = { # used in connector_magento_order_comment - 'draft': 'pending', - 'manual': 'processing', - 'progress': 'processing', - 'shipping_except': 'processing', - 'invoice_except': 'processing', - 'done': 'complete', - 'cancel': 'canceled', - 'waiting_date': 'holded' - } - - def run(self, binding, allowed_states=None, comment=None, notify=False): - """ Change the status of the sales order on Magento. - - It adds a comment on Magento with a status. - Sales orders on Magento have a state and a status. - The state is related to the sale workflow, and the status can be - modified liberaly. We change only the status because Magento - handle the state itself. - - When a sales order is modified, if we used the ``sales_order.cancel`` - API method, we would not be able to revert the cancellation. When - we send ``cancel`` as a status change with a new comment, we are still - able to change the status again and to create shipments and invoices - because the state is still ``new`` or ``processing``. - - :param binding: the binding record of the sales order - :param allowed_states: list of Odoo states that are allowed - for export. If empty, it will export any - state. - :param comment: Comment to display on Magento for the state change - :param notify: When True, Magento will send an email with the - comment - """ - state = binding.state - if allowed_states and state not in allowed_states: - return _('State %s is not exported.') % state - external_id = self.binder.to_external(binding) - if not external_id: - return _('Sale is not linked with a Magento sales order') - magento_state = self.ORDER_STATUS_MAPPING[state] - record = self.backend_adapter.read(external_id) - if record['status'] == magento_state: - return _('Magento sales order is already ' - 'in state %s') % magento_state - self.backend_adapter.add_comment(external_id, magento_state, - comment=comment, - notify=notify) diff --git a/connector_magento/models/stock_picking/__init__.py b/connector_magento/models/stock_picking/__init__.py new file mode 100644 index 000000000..ab4ab7264 --- /dev/null +++ b/connector_magento/models/stock_picking/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +from . import common +from . import exporter +from . import tracking_exporter diff --git a/connector_magento/stock_picking.py b/connector_magento/models/stock_picking/common.py similarity index 63% rename from connector_magento/stock_picking.py rename to connector_magento/models/stock_picking/common.py index 651526d08..4a3a74a55 100644 --- a/connector_magento/stock_picking.py +++ b/connector_magento/models/stock_picking/common.py @@ -1,14 +1,12 @@ # -*- coding: utf-8 -*- -# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# Copyright 2013-2017 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import logging import xmlrpclib -import odoo -from odoo import _, api, models, fields +from odoo import api, models, fields from odoo.addons.queue_job.job import job, related_action -from odoo.addons.queue_job.exception import NothingToDoJob from odoo.addons.connector.exception import IDMissingInBackend from odoo.addons.component.core import Component @@ -118,95 +116,6 @@ def get_carriers(self, external_id): [external_id]) -class MagentoPickingExporter(Component): - _name = 'magento.stock.picking.exporter' - _inherit = 'magento.exporter' - _apply_on = ['magento.stock.picking'] - - def _get_args(self, binding, lines_info=None): - if lines_info is None: - lines_info = {} - sale_binder = self.binder_for('magento.sale.order') - magento_sale_id = sale_binder.to_external(binding.magento_order_id) - mail_notification = self._get_picking_mail_option(binding) - return (magento_sale_id, lines_info, - _("Shipping Created"), mail_notification, True) - - def _get_lines_info(self, binding): - """ - Get the line to export to Magento. In case some lines doesn't have a - matching on Magento, we ignore them. This allow to add lines manually. - - :param binding: magento.stock.picking record - :return: dict of {magento_product_id: quantity} - :rtype: dict - """ - item_qty = {} - # get product and quantities to ship from the picking - for line in binding.move_lines: - sale_line = line.procurement_id.sale_line_id - if not sale_line.magento_bind_ids: - continue - magento_sale_line = next( - (line for line in sale_line.magento_bind_ids - if line.backend_id.id == binding.backend_id.id), - None - ) - if not magento_sale_line: - continue - item_id = magento_sale_line.external_id - item_qty.setdefault(item_id, 0) - item_qty[item_id] += line.product_qty - return item_qty - - def _get_picking_mail_option(self, binding): - """ Indicates if Magento has to send an email - - :param binding: magento.stock.picking record - :returns: value of send_picking_done_mail chosen on magento shop - :rtype: boolean - """ - magento_shop = binding.sale_id.magento_bind_ids[0].store_id - return magento_shop.send_picking_done_mail - - def run(self, binding): - """ - Export the picking to Magento - """ - if binding.external_id: - return _('Already exported') - picking_method = binding.picking_method - if picking_method == 'complete': - args = self._get_args(binding) - elif picking_method == 'partial': - lines_info = self._get_lines_info(binding) - if not lines_info: - raise NothingToDoJob(_('Canceled: the delivery order does not ' - 'contain lines from the original ' - 'sale order.')) - args = self._get_args(binding, lines_info) - else: - raise ValueError("Wrong value for picking_method, authorized " - "values are 'partial' or 'complete', " - "found: %s" % picking_method) - try: - external_id = self.backend_adapter.create(*args) - except xmlrpclib.Fault as err: - # When the shipping is already created on Magento, it returns: - # - if err.faultCode == 102: - raise NothingToDoJob('Canceled: the delivery order already ' - 'exists on Magento (fault 102).') - else: - raise - else: - self.binder.bind(external_id, binding) - # ensure that we store the external ID - if not odoo.tools.config['test_enable']: - self.env.cr.commit() - - class MagentoBindingStockPickingListener(Component): _name = 'magento.binding.stock.picking.listener' _inherit = 'base.event.listener' diff --git a/connector_magento/models/stock_picking/exporter.py b/connector_magento/models/stock_picking/exporter.py new file mode 100644 index 000000000..d47f875c8 --- /dev/null +++ b/connector_magento/models/stock_picking/exporter.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +import xmlrpclib + +import odoo +from odoo import _ +from odoo.addons.component.core import Component +from odoo.addons.queue_job.exception import NothingToDoJob + + +class MagentoPickingExporter(Component): + _name = 'magento.stock.picking.exporter' + _inherit = 'magento.exporter' + _apply_on = ['magento.stock.picking'] + + def _get_args(self, binding, lines_info=None): + if lines_info is None: + lines_info = {} + sale_binder = self.binder_for('magento.sale.order') + magento_sale_id = sale_binder.to_external(binding.magento_order_id) + mail_notification = self._get_picking_mail_option(binding) + return (magento_sale_id, lines_info, + _("Shipping Created"), mail_notification, True) + + def _get_lines_info(self, binding): + """ + Get the line to export to Magento. In case some lines doesn't have a + matching on Magento, we ignore them. This allow to add lines manually. + + :param binding: magento.stock.picking record + :return: dict of {magento_product_id: quantity} + :rtype: dict + """ + item_qty = {} + # get product and quantities to ship from the picking + for line in binding.move_lines: + sale_line = line.procurement_id.sale_line_id + if not sale_line.magento_bind_ids: + continue + magento_sale_line = next( + (line for line in sale_line.magento_bind_ids + if line.backend_id.id == binding.backend_id.id), + None + ) + if not magento_sale_line: + continue + item_id = magento_sale_line.external_id + item_qty.setdefault(item_id, 0) + item_qty[item_id] += line.product_qty + return item_qty + + def _get_picking_mail_option(self, binding): + """ Indicates if Magento has to send an email + + :param binding: magento.stock.picking record + :returns: value of send_picking_done_mail chosen on magento shop + :rtype: boolean + """ + magento_shop = binding.sale_id.magento_bind_ids[0].store_id + return magento_shop.send_picking_done_mail + + def run(self, binding): + """ + Export the picking to Magento + """ + if binding.external_id: + return _('Already exported') + picking_method = binding.picking_method + if picking_method == 'complete': + args = self._get_args(binding) + elif picking_method == 'partial': + lines_info = self._get_lines_info(binding) + if not lines_info: + raise NothingToDoJob(_('Canceled: the delivery order does not ' + 'contain lines from the original ' + 'sale order.')) + args = self._get_args(binding, lines_info) + else: + raise ValueError("Wrong value for picking_method, authorized " + "values are 'partial' or 'complete', " + "found: %s" % picking_method) + try: + external_id = self.backend_adapter.create(*args) + except xmlrpclib.Fault as err: + # When the shipping is already created on Magento, it returns: + # + if err.faultCode == 102: + raise NothingToDoJob('Canceled: the delivery order already ' + 'exists on Magento (fault 102).') + else: + raise + else: + self.binder.bind(external_id, binding) + # ensure that we store the external ID + if not odoo.tools.config['test_enable']: + self.env.cr.commit() diff --git a/connector_magento/stock_tracking.py b/connector_magento/models/stock_picking/tracking_exporter.py similarity index 98% rename from connector_magento/stock_tracking.py rename to connector_magento/models/stock_picking/tracking_exporter.py index e1d70b29f..9b671aec3 100644 --- a/connector_magento/stock_tracking.py +++ b/connector_magento/models/stock_picking/tracking_exporter.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# © 2013 Guewen Baconnier,Camptocamp SA,Akretion +# Copyright 2013-2017 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/setting.py b/connector_magento/setting.py deleted file mode 100644 index 583f3d432..000000000 --- a/connector_magento/setting.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2013 Guewen Baconnier,Camptocamp SA,Akretion -# © 2016 Sodexis -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from openerp import models, fields - - -class MagentoConfigSettings(models.TransientModel): - _inherit = 'connector.config.settings' - - module_connector_magento_pricing = fields.Boolean( - string="Prices are managed in OpenERP with pricelists", - help="Prices are set in OpenERP and exported to Magento.\n\n" - "This installs the module connector_magento_pricing.", - ) - module_connector_magento_export_partner = fields.Boolean( - string="Export Partners to Magento (experimental)", - help="This installs the module connector_magento_export_partner.", - ) diff --git a/connector_magento/views/account_payment_mode_view.xml b/connector_magento/views/account_payment_mode_views.xml similarity index 100% rename from connector_magento/views/account_payment_mode_view.xml rename to connector_magento/views/account_payment_mode_views.xml diff --git a/connector_magento/views/delivery_view.xml b/connector_magento/views/delivery_views.xml similarity index 100% rename from connector_magento/views/delivery_view.xml rename to connector_magento/views/delivery_views.xml diff --git a/connector_magento/views/invoice_view.xml b/connector_magento/views/invoice_views.xml similarity index 100% rename from connector_magento/views/invoice_view.xml rename to connector_magento/views/invoice_views.xml diff --git a/connector_magento/views/magento_model_view.xml b/connector_magento/views/magento_backend_views.xml similarity index 100% rename from connector_magento/views/magento_model_view.xml rename to connector_magento/views/magento_backend_views.xml diff --git a/connector_magento/views/partner_view.xml b/connector_magento/views/partner_views.xml similarity index 100% rename from connector_magento/views/partner_view.xml rename to connector_magento/views/partner_views.xml diff --git a/connector_magento/views/product_category_view.xml b/connector_magento/views/product_category_views.xml similarity index 100% rename from connector_magento/views/product_category_view.xml rename to connector_magento/views/product_category_views.xml diff --git a/connector_magento/views/product_view.xml b/connector_magento/views/product_views.xml similarity index 100% rename from connector_magento/views/product_view.xml rename to connector_magento/views/product_views.xml diff --git a/connector_magento/views/sale_view.xml b/connector_magento/views/sale_view.xml deleted file mode 100644 index 8046b18d2..000000000 --- a/connector_magento/views/sale_view.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/connector_magento/views/setting_view.xml b/connector_magento/views/setting_view.xml deleted file mode 100644 index 6c907f311..000000000 --- a/connector_magento/views/setting_view.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - open - - - - Connector Settings - connector.config.settings - - - - - - - - - - - - - diff --git a/connector_magento/views/stock_view.xml b/connector_magento/views/stock_views.xml similarity index 100% rename from connector_magento/views/stock_view.xml rename to connector_magento/views/stock_views.xml From 49e466e063864cf129cf75849ecc85771b2ef022 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Wed, 21 Jun 2017 14:15:23 +0200 Subject: [PATCH 03/31] Fix views * Add binding on sales orders * Ensure that we always have the Connector Manager group on the Connector tabs (most are done in the parent views of connector_ecommerce) * Fixed inheritance of the delivery.carrier view --- connector_magento/__manifest__.py | 3 +- connector_magento/views/delivery_views.xml | 12 +++-- .../views/product_category_views.xml | 2 + connector_magento/views/sale_order_views.xml | 52 +++++++++++++++++++ 4 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 connector_magento/views/sale_order_views.xml diff --git a/connector_magento/__manifest__.py b/connector_magento/__manifest__.py index fb3e0093a..55f68e5d4 100644 --- a/connector_magento/__manifest__.py +++ b/connector_magento/__manifest__.py @@ -31,8 +31,9 @@ 'views/product_category_views.xml', 'views/partner_views.xml', 'views/invoice_views.xml', + 'views/sale_order_views.xml', 'views/connector_magento_menu.xml', - # 'views/delivery_views.xml', + 'views/delivery_views.xml', 'views/stock_views.xml', 'views/account_payment_mode_views.xml', ], diff --git a/connector_magento/views/delivery_views.xml b/connector_magento/views/delivery_views.xml index 8c418ca72..4d746f23d 100644 --- a/connector_magento/views/delivery_views.xml +++ b/connector_magento/views/delivery_views.xml @@ -6,10 +6,14 @@ delivery.carrier - - - - + + + + + + + + diff --git a/connector_magento/views/product_category_views.xml b/connector_magento/views/product_category_views.xml index 917f0fc59..e38dcf904 100644 --- a/connector_magento/views/product_category_views.xml +++ b/connector_magento/views/product_category_views.xml @@ -5,6 +5,8 @@ product.category.form.magento product.category + diff --git a/connector_magento/views/sale_order_views.xml b/connector_magento/views/sale_order_views.xml new file mode 100644 index 000000000..58fe41e45 --- /dev/null +++ b/connector_magento/views/sale_order_views.xml @@ -0,0 +1,52 @@ + + + + + sale.order.magento.form + sale.order + + + + 0 + + + + + + + + + + + magento.sale.order.form + magento.sale.order + +
+ + + + + + + + +
+
+
+ + + magento.sale.order.tree + magento.sale.order + + + + + + + + + + +
From 286bd63553ec51f34d8576ec25639319e9dc226b Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Fri, 23 Jun 2017 12:50:40 +0200 Subject: [PATCH 04/31] Collection.work_on is now a context manager --- connector_magento/models/magento_backend/common.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/connector_magento/models/magento_backend/common.py b/connector_magento/models/magento_backend/common.py index c7948f96b..57a74e664 100644 --- a/connector_magento/models/magento_backend/common.py +++ b/connector_magento/models/magento_backend/common.py @@ -195,7 +195,9 @@ def work_on(self, model_name, **kwargs): with MagentoAPI(magento_location) as magento_api: _super = super(MagentoBackend, self) # from the components we'll be able to do: self.work.magento_api - yield _super.work_on(model_name, magento_api=magento_api, **kwargs) + with _super.work_on( + model_name, magento_api=magento_api, **kwargs) as work: + yield work @api.multi def add_checkpoint(self, record): From b4eedbe72bd7507ed6afd753bcfd2c85fbb34700 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Fri, 23 Jun 2017 12:56:22 +0200 Subject: [PATCH 05/31] Add a base listener and use it in partner export --- connector_magento/__init__.py | 1 - connector_magento/consumer.py | 44 ----------------------------------- 2 files changed, 45 deletions(-) delete mode 100644 connector_magento/consumer.py diff --git a/connector_magento/__init__.py b/connector_magento/__init__.py index 576e6cd7f..edf5255a2 100644 --- a/connector_magento/__init__.py +++ b/connector_magento/__init__.py @@ -4,5 +4,4 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import components -from . import consumer from . import models diff --git a/connector_magento/consumer.py b/connector_magento/consumer.py deleted file mode 100644 index bcfbaeaf2..000000000 --- a/connector_magento/consumer.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2013 Guewen Baconnier,Camptocamp SA,Akretion -# © 2016 Sodexis -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - - -def delay_export(env, model_name, record_id, vals): - """ Delay a job which export a binding record. - - (A binding record being a ``magento.res.partner``, - ``magento.product.product``, ...) - """ - if env.context.get('connector_no_export'): - return - fields = vals.keys() - delayable = env[model_name].browse(record_id).with_delay() - delayable.export_record(fields=fields) - - -def delay_export_all_bindings(env, model_name, record_id, vals): - """ Delay a job which export all the bindings of a record. - - In this case, it is called on records of normal models and will delay - the export for all the bindings. - """ - if env.context.get('connector_no_export'): - return - record = env[model_name].browse(record_id) - for binding in record.magento_bind_ids: - delay_export(env, binding._name, binding.id, vals) - - -def delay_unlink(env, model_name, record_id): - """ Delay a job which delete a record on Magento. - - Called on binding records.""" - record = env[model_name].browse(record_id) - with record.backend_id.work_on(model_name) as work: - binder = work.component(usage='binder') - external_id = binder.to_external(record_id) - if external_id: - binding = env[model_name].browse(record_id) - binding.with_delay().export_delete_record(record.backend_id, - external_id) From e3f082878750587518d7c4763b6d707bcd9b2549 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Fri, 30 Jun 2017 17:38:20 +0200 Subject: [PATCH 06/31] Rewrite tests using new API and vcr.py * Use vcr.py to record the exchanges instead of a self-made recorder * Use new base Components test case classes * Separate export tests in 2 phases: trigger of the export which check that the jobs are delayed, and test the job itself in a second test --- .../components/backend_adapter.py | 43 - connector_magento/components/importer.py | 2 +- connector_magento/doc/project/contribute.rst | 62 +- .../models/account_invoice/common.py | 10 +- .../models/magento_backend/common.py | 16 - connector_magento/models/product/common.py | 6 +- connector_magento/models/sale_order/common.py | 20 +- .../models/sale_order/importer.py | 2 +- .../models/stock_picking/common.py | 2 +- connector_magento/tests/__init__.py | 30 +- connector_magento/tests/common.py | 344 +- connector_magento/tests/data_address_book.py | 423 - connector_magento/tests/data_base.py | 26598 ---------------- connector_magento/tests/data_guest_order.py | 402 - connector_magento/tests/data_product.py | 113 - connector_magento/tests/fixtures/cassettes/:w | 163 + .../cassettes/import_product_product_879.yaml | 224 + .../import_sale_order_100000200-1.yaml | 1053 + ...mport_sale_order_100000201-no-website.yaml | 948 + .../import_sale_order_100000201.yaml | 948 + .../import_sale_order_145000008.yaml | 719 + .../import_sale_order_145000009.yaml | 994 + .../cassettes/import_sale_order_edited_1.yaml | 994 + .../cassettes/import_sale_order_edited_2.yaml | 291 + .../tests/fixtures/cassettes/metadata.yaml | 1671 + .../cassettes/test_export_invoice.yaml | 171 + .../test_export_picking_complete.yaml | 163 + .../test_export_picking_partial.yaml | 171 + .../test_export_tracking_number.yaml | 223 + ...test_import_existing_partner_category.yaml | 153 + .../test_import_partner_category.yaml | 153 + ...test_import_partner_company_1_address.yaml | 360 + ...st_import_partner_company_2_addresses.yaml | 366 + ...t_import_partner_individual_1_address.yaml | 299 + ...import_partner_individual_2_addresses.yaml | 422 + .../test_import_partner_no_address.yaml | 234 + .../cassettes/test_import_product.yaml | 222 + .../cassettes/test_import_product_bundle.yaml | 5391 ++++ .../test_import_product_category.yaml | 155 + .../test_import_product_category_missing.yaml | 465 + ...test_import_product_category_with_gap.yaml | 340 + .../test_import_product_configurable.yaml | 159 + .../test_import_product_grouped.yaml | 402 + .../test_import_product_virtual.yaml | 1527 + .../cassettes/test_product_export_qty.yaml | 173 + .../test_product_export_qty_config.yaml | 205 + .../test_sale_order_cancel_export.yaml | 241 + .../test_sale_order_reopen_export.yaml | 234 + connector_magento/tests/test_address_book.py | 171 - .../tests/test_concurrent_sync.py | 58 + .../tests/test_export_invoice.py | 272 +- .../tests/test_export_picking.py | 354 +- .../tests/test_export_product_stock.py | 180 + .../tests/test_import_metadata.py | 28 + .../tests/test_import_partner.py | 143 + .../tests/test_import_partner_category.py | 58 +- .../tests/test_import_product.py | 109 + .../tests/test_import_product_category.py | 31 + .../tests/test_import_product_image.py | 166 +- .../tests/test_related_action.py | 67 +- connector_magento/tests/test_sale_order.py | 430 +- .../tests/test_synchronization.py | 325 - .../tests/test_update_product_stock.py | 201 - 63 files changed, 21647 insertions(+), 29253 deletions(-) delete mode 100644 connector_magento/tests/data_address_book.py delete mode 100644 connector_magento/tests/data_base.py delete mode 100644 connector_magento/tests/data_guest_order.py delete mode 100644 connector_magento/tests/data_product.py create mode 100644 connector_magento/tests/fixtures/cassettes/:w create mode 100644 connector_magento/tests/fixtures/cassettes/import_product_product_879.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/import_sale_order_100000200-1.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/import_sale_order_100000201-no-website.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/import_sale_order_100000201.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/import_sale_order_145000008.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/import_sale_order_145000009.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/import_sale_order_edited_1.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/import_sale_order_edited_2.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/metadata.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_export_invoice.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_export_picking_complete.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_export_picking_partial.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_export_tracking_number.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_existing_partner_category.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_partner_category.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_partner_company_1_address.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_partner_company_2_addresses.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_partner_individual_1_address.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_partner_individual_2_addresses.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_partner_no_address.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_product.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_product_bundle.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_product_category.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_product_category_missing.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_product_category_with_gap.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_product_configurable.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_product_grouped.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_import_product_virtual.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_product_export_qty.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_product_export_qty_config.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_sale_order_cancel_export.yaml create mode 100644 connector_magento/tests/fixtures/cassettes/test_sale_order_reopen_export.yaml delete mode 100644 connector_magento/tests/test_address_book.py create mode 100644 connector_magento/tests/test_concurrent_sync.py create mode 100644 connector_magento/tests/test_export_product_stock.py create mode 100644 connector_magento/tests/test_import_metadata.py create mode 100644 connector_magento/tests/test_import_partner.py create mode 100644 connector_magento/tests/test_import_product.py create mode 100644 connector_magento/tests/test_import_product_category.py delete mode 100644 connector_magento/tests/test_synchronization.py delete mode 100644 connector_magento/tests/test_update_product_stock.py diff --git a/connector_magento/components/backend_adapter.py b/connector_magento/components/backend_adapter.py index ab9cf1b96..923937863 100644 --- a/connector_magento/components/backend_adapter.py +++ b/connector_magento/components/backend_adapter.py @@ -17,49 +17,6 @@ MAGENTO_DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S' -recorder = {} - - -# TODO: use vcr.py? -def call_to_key(method, arguments): - """ Used to 'freeze' the method and arguments of a call to Magento - so they can be hashable; they will be stored in a dict. - - Used in both the recorder and the tests. - """ - def freeze(arg): - if isinstance(arg, dict): - items = dict((key, freeze(value)) for key, value - in arg.iteritems()) - return frozenset(items.iteritems()) - elif isinstance(arg, list): - return tuple([freeze(item) for item in arg]) - else: - return arg - - new_args = [] - for arg in arguments: - new_args.append(freeze(arg)) - return (method, tuple(new_args)) - - -def record(method, arguments, result): - """ Utility function which can be used to record test data - during synchronisations. Call it from MagentoCRUDAdapter._call - - Then ``output_recorder`` can be used to write the data recorded - to a file. - """ - recorder[call_to_key(method, arguments)] = result - - -def output_recorder(filename): - import pprint - with open(filename, 'w') as f: - pprint.pprint(recorder, f) - _logger.debug('recorder written to file %s', filename) - - class MagentoLocation(object): def __init__(self, location, username, password, diff --git a/connector_magento/components/importer.py b/connector_magento/components/importer.py index ead3940a7..26f31381b 100644 --- a/connector_magento/components/importer.py +++ b/connector_magento/components/importer.py @@ -179,7 +179,7 @@ def run(self, external_id, force=False): lock_name = 'import({}, {}, {}, {})'.format( self.backend_record._name, self.backend_record.id, - self.model._name, + self.work.model_name, external_id, ) diff --git a/connector_magento/doc/project/contribute.rst b/connector_magento/doc/project/contribute.rst index 261e04ac8..8a6bcc20b 100644 --- a/connector_magento/doc/project/contribute.rst +++ b/connector_magento/doc/project/contribute.rst @@ -202,48 +202,14 @@ Every new feature in the connector should have tests. We use exclusively the The tests are located in ``connector_magento/tests``. -The tests run without any connection to Magento. They mock the API. In order -to test the connector with representative data, we record real -responses/requests, then use them in the tests. The reference data we use are -those of the Magento demo, which are automatically installed when you install -Magento using theses instructions: `Magento on Docker`_. +The tests run without any connection to Magento. They use `vcr.py +`_ in order to record real requests +made towards the Magento API. The first time a test is run, vrcpy runs the +request on a real Magento, the next times the test is run, it uses the +registered data. +The reference data we use are those of the Magento demo data. -Thus, in the ``tests`` folder, you will find files with only data, and the -others with the tests. -In order to record data, you can proceed as follows: - -In ``connector_magento/unit/backend_adapter.py`` at lines 130,130: - -.. code-block:: python - :emphasize-lines: 7,8 - - def _call(self, method, arguments): - try: - with magentolib.API(self.magento.location, - self.magento.username, - self.magento.password) as api: - result = api.call(method, arguments) - # Uncomment to record requests/responses in ``recorder`` - # record(method, arguments, result) - _logger.debug("api.call(%s, %s) returned %s", - method, arguments, result) - return result - -Uncomment the line doing a call to :py:func:`~openerp.addons.connector_magento.unit.backend_adapter.record()`. -Then, as soon as you will start the server, all the requests and responses -will be stored in global dict. Once you have recorded some exchanges, you can -output them using a tool such as `ERPpeek`_ and by calling the method -:py:class:`~openerp.addons.connector_magento.magento_model.magento_backend.output_recorder`: - -.. code-block:: python - - client.MagentoBackend.get(1).output_recorder([]) - -A path is returned with the location of the file. - -When you want to use a set of test data in a test, just use -:py:func:`~openerp.addons.connector_magento.tests.common.mock_api()`: .. code-block:: python @@ -253,15 +219,19 @@ When you want to use a set of test data in a test, just use <...> def test_new(self): <...> - with mock_api(new_set_of_data): + with recorder.use_cassette( + 'test_export_xxx') as cassette: # do what the test needs, such as, for instance: - import_batch(self.session, 'magento.website', backend_id) + binding.export_record() + # all http calls are recorded in 'cassette' + # we can now check many things in the cassette itself + self.assertEqual(1, len(cassette.requests)) See how to `Run the tests`_ Useful links: -* unittest documentation: http://docs.python.org/dev/library/unittest.html -* Odoo's documentation on tests: https://doc.openerp.com/trunk/server/05_test_framework/ - -.. _`ERPpeek`: https://erppeek.readthedocs.org/en/latest/ +* unittest documentation: https://docs.python.org/2/library/unittest.html +* Odoo's documentation on tests: https://www.odoo.com/documentation/10.0/reference/testing.html +* vcr.py documentation: https://vcrpy.readthedocs.io/en/latest/ +* pytest odoo plugin: https://pypi.python.org/pypi/pytest-odoo diff --git a/connector_magento/models/account_invoice/common.py b/connector_magento/models/account_invoice/common.py index d346d642a..659423d5b 100644 --- a/connector_magento/models/account_invoice/common.py +++ b/connector_magento/models/account_invoice/common.py @@ -36,7 +36,7 @@ class MagentoAccountInvoice(models.Model): @job(default_channel='root.magento') @related_action(action='related_action_unwrap_binding') @api.multi - def export_invoice(self): + def export_record(self): """ Export a validated or paid invoice. """ self.ensure_one() with self.backend_id.work_on(self._name) as work: @@ -105,7 +105,7 @@ class MagentoBindingInvoiceListener(Component): _apply_on = ['magento.account.invoice'] def on_record_create(self, record, fields=None): - record.with_delay().export_invoice() + record.with_delay().export_record() class MagentoInvoiceListener(Component): @@ -139,9 +139,9 @@ def invoice_create_bindings(self, invoice): # Check if invoice state matches configuration setting # for when to export an invoice magento_store = magento_sale.store_id - payment_method = sale.payment_mode_id - if payment_method and payment_method.create_invoice_on: - create_invoice = payment_method.create_invoice_on + payment_mode = sale.payment_mode_id + if payment_mode and payment_mode.create_invoice_on: + create_invoice = payment_mode.create_invoice_on else: create_invoice = magento_store.create_invoice_on diff --git a/connector_magento/models/magento_backend/common.py b/connector_magento/models/magento_backend/common.py index 57a74e664..808be3ade 100644 --- a/connector_magento/models/magento_backend/common.py +++ b/connector_magento/models/magento_backend/common.py @@ -338,22 +338,6 @@ def _scheduler_import_product_product(self, domain=None): def _scheduler_update_product_stock_qty(self, domain=None): self._magento_backend('update_product_stock_qty', domain=domain) - @api.multi - def output_recorder(self): - """ Utility method to output a file containing all the recorded - requests / responses with Magento. Used to generate test data. - Should be called with ``erppeek`` for instance. - """ - from .unit.backend_adapter import output_recorder - import os - import tempfile - fmt = '%Y-%m-%d-%H-%M-%S' - timestamp = datetime.now().strftime(fmt) - filename = 'output_%s_%s' % (self.env.cr.dbname, timestamp) - path = os.path.join(tempfile.gettempdir(), filename) - output_recorder(path) - return path - class MagentoConfigSpecializer(models.AbstractModel): _name = 'magento.config.specializer' diff --git a/connector_magento/models/product/common.py b/connector_magento/models/product/common.py index 2fcab4d8d..dff49c977 100644 --- a/connector_magento/models/product/common.py +++ b/connector_magento/models/product/common.py @@ -11,6 +11,7 @@ from odoo import models, fields, api from odoo.addons.connector.exception import IDMissingInBackend from odoo.addons.component.core import Component +from odoo.addons.component_event import skip_if from odoo.addons.queue_job.job import job, related_action from ...components.backend_adapter import MAGENTO_DATETIME_FORMAT @@ -240,7 +241,7 @@ def update_inventory(self, id, data): class MagentoBindingProductListener(Component): _name = 'magento.binding.product.product.listener' - _inherit = 'base.event.listener' + _inherit = 'base.connector.listener' _apply_on = ['magento.product.product'] # fields which should not trigger an export of the products @@ -250,9 +251,8 @@ class MagentoBindingProductListener(Component): 'magento_qty', ) + @skip_if(lambda self, record, **kwargs: self.no_connector_export(record)) def on_record_write(self, record, fields=None): - if self.env.context.get('connector_no_export'): - return if record.no_stock_sync: return inventory_fields = list( diff --git a/connector_magento/models/sale_order/common.py b/connector_magento/models/sale_order/common.py index 7808a3c9b..c808a3536 100644 --- a/connector_magento/models/sale_order/common.py +++ b/connector_magento/models/sale_order/common.py @@ -123,12 +123,14 @@ def write(self, vals): self._magento_cancel() return super(SaleOrder, self).write(vals) - def _magento_link_binding_of_copy(self, new_id): + def _magento_link_binding_of_copy(self, new): # link binding of the canceled order to the new order, so the # operations done on the new order will be sync'ed with Magento + if self.state != 'cancel': + return binding_model = self.env['magento.sale.order'] bindings = binding_model.search([('odoo_id', '=', self.id)]) - bindings.write({'odoo_id': new_id}) + bindings.write({'odoo_id': new.id}) for binding in bindings: # the sales' status on Magento is likely 'canceled' @@ -139,11 +141,11 @@ def _magento_link_binding_of_copy(self, new_id): ).export_state_change() @api.multi - def copy_quotation(self): + def copy(self, default=None): self_copy = self.with_context(__copy_from_quotation=True) - result = super(SaleOrder, self_copy).copy_quotation() - self._magento_link_binding_of_copy(result['res_id']) - return result + new = super(SaleOrder, self_copy).copy(default=default) + self_copy._magento_link_binding_of_copy(new) + return new class MagentoSaleOrderLine(models.Model): @@ -220,7 +222,7 @@ def create(self, vals): @api.multi def copy_data(self, default=None): - data = super(SaleOrderLine, self).copy_data(default=default) + data = super(SaleOrderLine, self).copy_data(default=default)[0] if self.env.context.get('__copy_from_quotation'): # copy_data is called by `copy` of the sale.order which # builds a dict for the full new sale order, so we lose the @@ -229,8 +231,8 @@ def copy_data(self, default=None): # to `create`, from there, we'll be able to update the # Magento bindings, modifying the relation from the old to # the new line. - data['__copy_from_line_id'] = id - return data + data['__copy_from_line_id'] = self.id + return [data] class SaleOrderAdapter(Component): diff --git a/connector_magento/models/sale_order/importer.py b/connector_magento/models/sale_order/importer.py index 55ee82402..04766212e 100644 --- a/connector_magento/models/sale_order/importer.py +++ b/connector_magento/models/sale_order/importer.py @@ -276,7 +276,7 @@ def project_id(self, record): def fiscal_position(self, record): fiscal_position = self.options.storeview.fiscal_position_id if fiscal_position: - return {'fiscal_position': fiscal_position.id} + return {'fiscal_position_id': fiscal_position.id} # partner_id, partner_invoice_id, partner_shipping_id # are done in the importer diff --git a/connector_magento/models/stock_picking/common.py b/connector_magento/models/stock_picking/common.py index 4a3a74a55..e662fa7b0 100644 --- a/connector_magento/models/stock_picking/common.py +++ b/connector_magento/models/stock_picking/common.py @@ -143,7 +143,7 @@ def on_tracking_number_added(self, record): for binding in record.magento_bind_ids: # Set the priority to 20 to have more chance that it would be # executed after the picking creation - binding.with_delay(priority=20).export_tracking() + binding.with_delay(priority=20).export_tracking_number() def on_picking_out_done(self, record, picking_method): """ diff --git a/connector_magento/tests/__init__.py b/connector_magento/tests/__init__.py index 48c5088fb..c11ea4c75 100644 --- a/connector_magento/tests/__init__.py +++ b/connector_magento/tests/__init__.py @@ -1,30 +1,14 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2012 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -from . import test_synchronization -from . import test_address_book +from . import test_concurrent_sync from . import test_export_invoice +from . import test_export_picking +from . import test_export_product_stock +from . import test_import_metadata +from . import test_import_partner from . import test_import_partner_category +from . import test_import_product +from . import test_import_product_category from . import test_import_product_image from . import test_related_action from . import test_sale_order -from . import test_export_picking -from . import test_update_product_stock diff --git a/connector_magento/tests/common.py b/connector_magento/tests/common.py index a18851d3a..18fdf5ce2 100644 --- a/connector_magento/tests/common.py +++ b/connector_magento/tests/common.py @@ -1,145 +1,32 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2013 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# Copyright 2013-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) """ Helpers usable in the tests """ -import importlib -import mock -from contextlib import contextmanager -import openerp.tests.common as common -from openerp.addons.connector.session import ConnectorSession -from openerp.addons.connector_magento.unit.import_synchronizer import ( - import_batch, -) -from openerp.addons.connector_magento.unit.backend_adapter import call_to_key -from .data_base import magento_base_responses - - -class TestResponder(object): - """ Used to simulate the calls to Magento. - - For a call (request) to Magento, returns a stored - response. - """ - - def __init__(self, responses, key_func=None): - """ - The responses are stored in dict instances. - The keys are normalized using the ``call_to_key`` - function which transform the request calls in a - hashable form. - - :param responses: responses returned by Magento - :param call_to_key: function to build the key - from the method and arguments - :type responses: dict - """ - self._responses = responses - self._calls = [] - self.call_to_key = key_func or call_to_key - - def __call__(self, method, arguments): - self._calls.append((method, arguments)) - key = self.call_to_key(method, arguments) - assert key in self._responses, ( - "%s not found in magento responses" % str(key)) - if hasattr(self._responses[key], '__call__'): - return self._responses[key]() - else: - return self._responses[key] - - -@contextmanager -def mock_job_delay_to_direct(job_path): - """ Replace the .delay() of a job by a direct call - - job_path is the python path, such as:: +import xmlrpclib +import logging - openerp.addons.connector_magento.stock_picking.export_picking_done +import mock +import odoo - """ - job_module, job_name = job_path.rsplit('.', 1) - module = importlib.import_module(job_module) - job_func = getattr(module, job_name, None) - assert job_func, "The function %s must exist in %s" % (job_name, - job_module) - - def clean_args_for_func(*args, **kwargs): - # remove the special args reseved to .delay() - kwargs.pop('priority', None) - kwargs.pop('eta', None) - kwargs.pop('model_name', None) - kwargs.pop('max_retries', None) - kwargs.pop('description', None) - job_func(*args, **kwargs) - - with mock.patch(job_path) as patched_job: - # call the direct export instead of 'delay()' - patched_job.delay.side_effect = clean_args_for_func - yield patched_job - - -class ChainMap(dict): - - def __init__(self, *maps): - self._maps = maps - - def __getitem__(self, key): - for mapping in self._maps: - try: - return mapping[key] - except KeyError: - pass - raise KeyError(key) - - def __contains__(self, key): - try: - self[key] - except KeyError: - return False - else: - return True +from os.path import dirname, join +from contextlib import contextmanager +from odoo import models +from odoo.addons.component.tests.common import SavepointComponentCase +from vcr import VCR -@contextmanager -def mock_api(responses, key_func=None): - """ - The responses argument is a dict with the methods and arguments as keys - and the responses as values. It can also be a list of such dicts. - When it is a list, the key is searched in the firsts dicts first. +logging.getLogger("vcr").setLevel(logging.WARNING) - :param responses: responses returned by Magento - :type responses: dict - """ - if isinstance(responses, (list, tuple)): - responses = ChainMap(*responses) - get_magento_response = TestResponder(responses, key_func=key_func) - with mock.patch('magento.API') as API: - api_mock = mock.MagicMock(name='magento.api') - API.return_value = api_mock - api_mock.__enter__.return_value = api_mock - api_mock.call.side_effect = get_magento_response - yield get_magento_response._calls +recorder = VCR( + record_mode='once', + cassette_library_dir=join(dirname(__file__), 'fixtures/cassettes'), + path_transformer=VCR.ensure_suffix('.yaml'), + filter_headers=['Authorization'], +) class MockResponseImage(object): @@ -180,51 +67,194 @@ def get_next_id(self): return 1 -class SetUpMagentoBase(common.TransactionCase): +class MagentoTestCase(SavepointComponentCase): """ Base class - Test the imports from a Magento Mock. The data returned by Magento are those created for the - demo version of Magento on a standard 1.7 version. + demo version of Magento on a standard 1.9 version. """ def setUp(self): - super(SetUpMagentoBase, self).setUp() + super(MagentoTestCase, self).setUp() + # disable commits when run from pytest/nosetest + odoo.tools.config['test_enable'] = True + self.backend_model = self.env['magento.backend'] - self.session = ConnectorSession(self.env.cr, self.env.uid, - context=self.env.context) warehouse = self.env.ref('stock.warehouse0') self.backend = self.backend_model.create( {'name': 'Test Magento', 'version': '1.7', - 'location': 'http://anyurl', - 'username': 'guewen', + 'location': 'http://magento', + 'username': 'odoo', 'warehouse_id': warehouse.id, - 'password': '42'} + 'password': 'odoo42'} ) - self.backend_id = self.backend.id # payment method needed to import a sale order - workflow = self.env.ref( + self.workflow = self.env.ref( 'sale_automatic_workflow.manual_validation') - journal = self.env.ref('account.check_journal') - self.payment_term = self.env.ref('account.' - 'account_payment_term_advance') - self.env['payment.method'].create( - {'name': 'checkmo', - 'workflow_process_id': workflow.id, - 'import_rule': 'always', - 'days_before_cancel': 0, - 'payment_term_id': self.payment_term.id, - 'journal_id': journal.id}) + self.journal = self.env['account.journal'].create( + {'name': 'Check', 'type': 'cash', 'code': 'Check'} + ) + payment_method = self.env.ref( + 'account.account_payment_method_manual_in' + ) + for name in ['checkmo', 'ccsave', 'cashondelivery']: + self.env['account.payment.mode'].create( + {'name': name, + 'workflow_process_id': self.workflow.id, + 'import_rule': 'always', + 'days_before_cancel': 0, + 'bank_account_link': 'fixed', + 'payment_method_id': payment_method.id, + 'fixed_journal_id': self.journal.id}) def get_magento_helper(self, model_name): return MagentoHelper(self.cr, self.registry, model_name) + def create_binding_no_export(self, model_name, odoo_id, external_id=None, + **cols): + if isinstance(odoo_id, models.BaseModel): + odoo_id = odoo_id.id + values = { + 'backend_id': self.backend.id, + 'odoo_id': odoo_id, + 'external_id': external_id, + } + if cols: + values.update(cols) + return self.env[model_name].with_context( + connector_no_export=True + ).create(values) + + @contextmanager + def mock_with_delay(self): + with mock.patch('odoo.addons.queue_job.models.base.DelayableRecordset', + name='DelayableRecordset', spec=True + ) as delayable_cls: + # prepare the mocks + delayable = mock.MagicMock(name='DelayableBinding') + delayable_cls.return_value = delayable + yield delayable_cls, delayable + + def parse_cassette_request(self, body): + args, __ = xmlrpclib.loads(body) + # the first argument is a hash, we don't mind + return args[1:] + + def _import_record(self, model_name, magento_id, cassette=True): + assert model_name.startswith('magento.') + table_name = model_name.replace('.', '_') + # strip 'magento_' from the model_name to shorted the filename + filename = 'import_%s_%s' % (table_name[8:], str(magento_id)) + + def run_import(): + with mock_urlopen_image(): + self.env[model_name].import_record(self.backend, magento_id) + + if cassette: + with recorder.use_cassette(filename): + run_import() + else: + run_import() -class SetUpMagentoSynchronized(SetUpMagentoBase): + binding = self.env[model_name].search( + [('backend_id', '=', self.backend.id), + ('external_id', '=', str(magento_id))] + ) + self.assertEqual(len(binding), 1) + return binding + + def assert_records(self, expected_records, records): + """ Assert that a recordset matches with expected values. + + The expected records are a list of nametuple, the fields of the + namedtuple must have the same name than the recordset's fields. + + The expected values are compared to the recordset and records that + differ from the expected ones are show as ``-`` (missing) or ``+`` + (extra) lines. + + Example:: + + ExpectedShop = namedtuple('ExpectedShop', + 'name company_id') + expected = [ + ExpectedShop( + name='MyShop1', + company_id=self.company_ch + ), + ExpectedShop( + name='MyShop2', + company_id=self.company_ch + ), + ] + self.assert_records(expected, shops) + + Possible output: + + - foo.shop(name: MyShop1, company_id: res.company(2,)) + - foo.shop(name: MyShop2, company_id: res.company(1,)) + + foo.shop(name: MyShop3, company_id: res.company(1,)) + + :param expected_records: list of namedtuple with matching values + for the records + :param records: the recordset to check + :raises: AssertionError if the values do not match + """ + model_name = records._name + records = list(records) + assert len(expected_records) > 0, "must have > 0 expected record" + fields = expected_records[0]._fields + not_found = [] + equals = [] + for expected in expected_records: + for record in records: + for field, value in expected._asdict().iteritems(): + if not getattr(record, field) == value: + break + else: + records.remove(record) + equals.append(record) + break + else: + not_found.append(expected) + message = [] + for record in equals: + # same records + message.append( + u' ✓ {}({})'.format( + model_name, + u', '.join(u'%s: %s' % (field, getattr(record, field)) for + field in fields) + ) + ) + for expected in not_found: + # missing records + message.append( + u' - {}({})'.format( + model_name, + u', '.join(u'%s: %s' % (k, v) for + k, v in expected._asdict().iteritems()) + ) + ) + for record in records: + # extra records + message.append( + u' + {}({})'.format( + model_name, + u', '.join(u'%s: %s' % (field, getattr(record, field)) for + field in fields) + ) + ) + if not_found or records: + raise AssertionError(u'Records do not match:\n\n{}'.format( + '\n'.join(message) + )) + + +class MagentoSyncTestCase(MagentoTestCase): def setUp(self): - super(SetUpMagentoSynchronized, self).setUp() - with mock_api(magento_base_responses): - import_batch(self.session, 'magento.website', self.backend_id) - import_batch(self.session, 'magento.store', self.backend_id) - import_batch(self.session, 'magento.storeview', self.backend_id) + super(MagentoSyncTestCase, self).setUp() + with recorder.use_cassette('metadata'): + self.backend.synchronize_metadata() diff --git a/connector_magento/tests/data_address_book.py b/connector_magento/tests/data_address_book.py deleted file mode 100644 index 7b0498cd3..000000000 --- a/connector_magento/tests/data_address_book.py +++ /dev/null @@ -1,423 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2013 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -# flake8: noqa : ignore style in this file because it is a data file -# only - -""" -Magento responses for calls done by the connector. - -This set of responses has been recorded for the synchronizations -with a Magento 1.7 version with demo data. - -It has been recorded using ``connector_magento.unit.backend_adapter.record`` -and ``connector_magento.unit.backend_adapter.output_recorder`` - -This set of data contains examples of customers and their address books -""" - - -# customer without address -no_address = { - ('customer.info', (9999253,)): {'confirmation': None, - 'created_at': '2013-06-28 12:35:33', - 'created_in': 'English', - 'customer_id': '9999253', - 'default_billing': None, - 'default_shipping': None, - 'disable_auto_group_change': '0', - 'dob': None, - 'email': 'lucie69+testdata@example.com', - 'firstname': 'Benjamin', - 'gender': None, - 'group_id': '1', - 'increment_id': None, - 'lastname': 'Le Goff', - 'middlename': None, - 'password_hash': '1c200f3cca5856a6da405359a4640de7:Ae', - 'prefix': None, - 'rp_token': None, - 'rp_token_created_at': None, - 'store_id': '1', - 'suffix': None, - 'taxvat': None, - 'updated_at': '2013-06-28 12:36:23', - 'website_id': '1'}, - ('customer_address.list', (frozenset([('customer_id', frozenset([('eq', '9999253')]))]),)): [], -} - - -# individual customer with 1 address -individual_1_address = \ - {('customer.info', (9999254,)): {'confirmation': None, - 'created_at': '2013-06-28 12:43:49', - 'created_in': 'English', - 'customer_id': '9999254', - 'default_billing': '9999253', - 'default_shipping': '9999253', - 'disable_auto_group_change': '0', - 'dob': None, - 'email': 'bourdon.laurent+testdata@example.net', - 'firstname': 'Alexandre', - 'gender': None, - 'group_id': '1', - 'increment_id': None, - 'lastname': 'Laroche', - 'middlename': None, - 'password_hash': '6f1a99ac3f1acf03f7534dfd6464e5ce:QI', - 'prefix': None, - 'rp_token': None, - 'rp_token_created_at': None, - 'store_id': '1', - 'suffix': None, - 'taxvat': None, - 'updated_at': '2013-06-28 12:43:49', - 'website_id': '1'}, - ('customer_address.info', (9999253,)): {'city': u'Boutin-la-Forêt', - 'company': None, - 'country_id': 'FR', - 'created_at': '2013-06-28 12:43:49', - 'customer_address_id': '9999253', - 'fax': None, - 'firstname': 'Ferreira', - 'increment_id': None, - 'is_default_billing': True, - 'is_default_shipping': True, - 'lastname': 'Margaux', - 'middlename': None, - 'postcode': '28371', - 'prefix': None, - 'region': 'Gers', - 'region_id': '214', - 'street': 'avenue Bourdon', - 'suffix': None, - 'telephone': '0450615076', - 'updated_at': '2013-06-28 12:43:49', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - ('customer_address.list', (frozenset([('customer_id', frozenset([('eq', '9999254')]))]),)): - [{'city': u'Boutin-la-Forêt', - 'company': None, - 'country_id': 'FR', - 'created_at': '2013-06-28 12:43:49', - 'customer_address_id': '9999253', - 'firstname': 'Ferreira', - 'is_default_billing': True, - 'is_default_shipping': True, - 'lastname': 'Margaux', - 'postcode': '28371', - 'region': 'Gers', - 'region_id': '214', - 'street': 'avenue Bourdon', - 'telephone': '0450615076', - 'updated_at': '2013-06-28 12:43:49'}], - } - - -# individual customer with 2 addresses -individual_2_addresses = \ - {('customer.info', (9999255,)): {'confirmation': None, - 'created_at': '2013-06-28 12:56:40', - 'created_in': 'English', - 'customer_id': '9999255', - 'default_billing': '9999254', - 'default_shipping': '9999255', - 'disable_auto_group_change': '0', - 'dob': None, - 'email': 'marguerite.ramos+testdata@example.org', - 'firstname': 'Richard', - 'gender': None, - 'group_id': '1', - 'increment_id': None, - 'lastname': 'Humbert', - 'middlename': None, - 'password_hash': '18d73f47a1dec14fb90c6e87ff95b327:S5', - 'prefix': None, - 'rp_token': None, - 'rp_token_created_at': None, - 'store_id': '1', - 'suffix': None, - 'taxvat': None, - 'updated_at': '2013-06-28 13:00:23', - 'website_id': '1'}, - ('customer_address.info', (9999254,)): {'city': 'Perez', - 'company': None, - 'country_id': 'FR', - 'created_at': '2013-06-28 12:56:43', - 'customer_address_id': '9999254', - 'fax': None, - 'firstname': 'Mace', - 'increment_id': None, - 'is_default_billing': True, - 'is_default_shipping': False, - 'lastname': u'Sébastien', - 'middlename': None, - 'postcode': '91803', - 'prefix': None, - 'region': u'Deux-Sèvres', - 'region_id': '261', - 'street': 'rue Jacques Petitjean', - 'suffix': None, - 'telephone': '+33 5 69 07 51 52', - 'updated_at': '2013-06-28 13:00:23', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - ('customer_address.info', (9999255,)): {'city': 'Bugarach', - 'company': None, - 'country_id': 'FR', - 'created_at': '2013-06-28 13:00:23', - 'customer_address_id': '9999255', - 'fax': None, - 'firstname': 'Richard', - 'increment_id': None, - 'is_default_billing': False, - 'is_default_shipping': True, - 'lastname': 'Humbert', - 'middlename': None, - 'postcode': '11190', - 'prefix': None, - 'region': 'Aude', - 'region_id': '192', - 'street': 'Rue Raz 1', - 'suffix': None, - 'telephone': '+33 5 69 07 51 52', - 'updated_at': '2013-06-28 13:00:23', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - ('customer_address.list', (frozenset([('customer_id', frozenset([('eq', '9999255')]))]),)): - [{'city': 'Perez', - 'company': None, - 'country_id': 'FR', - 'created_at': '2013-06-28 12:56:43', - 'customer_address_id': '9999254', - 'firstname': 'Mace', - 'is_default_billing': True, - 'is_default_shipping': False, - 'lastname': u'Sébastien', - 'postcode': '91803', - 'region': u'Deux-Sèvres', - 'region_id': '261', - 'street': 'rue Jacques Petitjean', - 'telephone': '+33 5 69 07 51 52', - 'updated_at': '2013-06-28 13:00:23'}, - {'city': 'Bugarach', - 'country_id': 'FR', - 'created_at': '2013-06-28 13:00:23', - 'customer_address_id': '9999255', - 'firstname': 'Richard', - 'is_default_billing': False, - 'is_default_shipping': True, - 'lastname': 'Humbert', - 'postcode': '11190', - 'region': 'Aude', - 'region_id': '192', - 'street': 'Rue Raz 1', - 'telephone': '+33 5 69 07 51 52', - 'updated_at': '2013-06-28 13:00:23'}], - } - - -# company with 1 address -company_1_address = \ - {('customer.info', (9999256,)): {'confirmation': None, - 'created_at': '2013-06-28 13:10:21', - 'created_in': 'English', - 'customer_id': '9999256', - 'default_billing': '9999256', - 'default_shipping': '9999256', - 'disable_auto_group_change': '0', - 'dob': None, - 'email': 'theophile.arnaud+testdata@example.com', - 'firstname': 'Patrick', - 'gender': None, - 'group_id': '1', - 'increment_id': None, - 'lastname': 'Allard', - 'middlename': None, - 'password_hash': '5fea77dbd8c40f8e1cee408631856e15:1n', - 'prefix': None, - 'rp_token': None, - 'rp_token_created_at': None, - 'store_id': '1', - 'suffix': None, - 'taxvat': None, - 'updated_at': '2013-06-28 13:10:22', - 'website_id': '1'}, - ('customer_address.info', (9999256,)): {'city': 'Launaynec', - 'company': 'Marechal', - 'country_id': 'FR', - 'created_at': '2013-06-28 13:10:22', - 'customer_address_id': '9999256', - 'fax': None, - 'firstname': 'Leclerc', - 'increment_id': None, - 'is_default_billing': True, - 'is_default_shipping': True, - 'lastname': 'Nicole', - 'middlename': None, - 'postcode': '51591', - 'prefix': None, - 'region': 'Yvelines', - 'region_id': '260', - 'street': 'rue de Arnaud', - 'suffix': None, - 'telephone': '05 11 66 85 86', - 'updated_at': '2013-06-28 13:10:22', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - ('customer_address.list', (frozenset([('customer_id', frozenset([('eq', '9999256')]))]),)): - [{'city': 'Launaynec', - 'company': 'Marechal', - 'country_id': 'FR', - 'created_at': '2013-06-28 13:10:22', - 'customer_address_id': '9999256', - 'firstname': 'Leclerc', - 'is_default_billing': True, - 'is_default_shipping': True, - 'lastname': 'Nicole', - 'postcode': '51591', - 'region': 'Yvelines', - 'region_id': '260', - 'street': 'rue de Arnaud', - 'telephone': '05 11 66 85 86', - 'updated_at': '2013-06-28 13:10:22'}], - } - - -# company with 2 addresses -company_2_addresses = \ - {('customer.info', (9999257,)): {'confirmation': None, - 'created_at': '2013-06-28 13:23:01', - 'created_in': 'English', - 'customer_id': '9999257', - 'default_billing': '9999257', - 'default_shipping': '9999258', - 'disable_auto_group_change': '0', - 'dob': None, - 'email': 'pruvost.aurelie+testdata@example.org', - 'firstname': 'Isaac', - 'gender': None, - 'group_id': '1', - 'increment_id': None, - 'lastname': 'Maillot', - 'middlename': None, - 'password_hash': '374fbdc81b990d44703a4b76ea7f1ad2:Ud', - 'prefix': None, - 'rp_token': None, - 'rp_token_created_at': None, - 'store_id': '1', - 'suffix': None, - 'taxvat': None, - 'updated_at': '2013-06-28 13:25:28', - 'website_id': '1'}, - ('customer_address.info', (9999257,)): {'city': 'Raynauddan', - 'company': 'Bertin', - 'country_id': 'FR', - 'created_at': '2013-06-28 13:23:01', - 'customer_address_id': '9999257', - 'fax': None, - 'firstname': 'Lombard', - 'increment_id': None, - 'is_default_billing': True, - 'is_default_shipping': False, - 'lastname': 'Yves', - 'middlename': None, - 'postcode': '60669', - 'prefix': None, - 'region': 'Eure', - 'region_id': '209', - 'street': 'boulevard Benjamin Guillou', - 'suffix': None, - 'telephone': '01 42 39 24 13', - 'updated_at': '2013-06-28 13:25:28', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - ('customer_address.info', (9999258,)): {'city': 'Cailla', - 'company': None, - 'country_id': 'FR', - 'created_at': '2013-06-28 13:25:28', - 'customer_address_id': '9999258', - 'fax': None, - 'firstname': 'Isaac', - 'increment_id': None, - 'is_default_billing': False, - 'is_default_shipping': True, - 'lastname': 'Maillot', - 'middlename': None, - 'postcode': '11140', - 'prefix': None, - 'region': 'Aude', - 'region_id': '192', - 'street': 'Rue Montgomery 1', - 'suffix': None, - 'telephone': '01 42 39 24 13', - 'updated_at': '2013-06-28 13:25:28', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - ('customer_address.list', (frozenset([('customer_id', frozenset([('eq', '9999257')]))]),)): - [{'city': 'Raynauddan', - 'company': 'Bertin', - 'country_id': 'FR', - 'created_at': '2013-06-28 13:23:01', - 'customer_address_id': '9999257', - 'firstname': 'Lombard', - 'is_default_billing': True, - 'is_default_shipping': False, - 'lastname': 'Yves', - 'postcode': '60669', - 'region': 'Eure', - 'region_id': '209', - 'street': 'boulevard Benjamin Guillou', - 'telephone': '01 42 39 24 13', - 'updated_at': '2013-06-28 13:25:28'}, - {'city': 'Cailla', - 'country_id': 'FR', - 'created_at': '2013-06-28 13:25:28', - 'customer_address_id': '9999258', - 'firstname': 'Isaac', - 'is_default_billing': False, - 'is_default_shipping': True, - 'lastname': 'Maillot', - 'postcode': '11140', - 'region': 'Aude', - 'region_id': '192', - 'street': 'Rue Montgomery 1', - 'telephone': '01 42 39 24 13', - 'updated_at': '2013-06-28 13:25:28'}], - } diff --git a/connector_magento/tests/data_base.py b/connector_magento/tests/data_base.py deleted file mode 100644 index 4012ce8ef..000000000 --- a/connector_magento/tests/data_base.py +++ /dev/null @@ -1,26598 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2013 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -# flake8: noqa : ignore style in this file because it is a data file -# only - -""" -Magento responses for calls done by the connector. - -This set of responses has been recorded for the synchronizations -with a Magento 1.7 version with demo data. - -It has been recorded using ``connector_magento.unit.backend_adapter.record`` -and ``connector_magento.unit.backend_adapter.output_recorder`` -""" -import time - - -FMT = "%Y-%m-%d %H:%M:%S" - - -magento_base_responses = \ - {('catalog_category.info', (1, )): {'all_children': '1,3,10,22,23,13,12,25,26,15,27,28,29,30,31,32,33,34,8,18,19,4,5,16,17', - 'available_sort_by': None, - 'category_id': '1', - 'children': '3', - 'created_at': '2007-07-20 18:46:08', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': None, - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': None, - 'landing_page': None, - 'level': '0', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': None, - 'page_layout': None, - 'parent_id': 0, - 'path': '1', - 'path_in_store': None, - 'position': '1', - 'thumbnail': None, - 'updated_at': '2007-08-07 09:50:15', - 'url_key': None, - 'url_path': None}, - ('catalog_category.info', (1, u'2', )): {'all_children': '1,3,10,22,23,13,12,25,26,15,27,28,29,30,31,32,33,34,8,18,19,4,5,16,17', - 'available_sort_by': None, - 'category_id': '1', - 'children': '3', - 'created_at': '2007-07-20 18:46:08', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': None, - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': None, - 'landing_page': None, - 'level': '0', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': None, - 'page_layout': None, - 'parent_id': 0, - 'path': '1', - 'path_in_store': None, - 'position': '1', - 'thumbnail': None, - 'updated_at': '2007-08-07 09:50:15', - 'url_key': None, - 'url_path': None}, - ('catalog_category.info', (1, u'3', )): {'all_children': '1,3,10,22,23,13,12,25,26,15,27,28,29,30,31,32,33,34,8,18,19,4,5,16,17', - 'available_sort_by': None, - 'category_id': '1', - 'children': '3', - 'created_at': '2007-07-20 18:46:08', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': None, - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': None, - 'landing_page': None, - 'level': '0', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': None, - 'page_layout': None, - 'parent_id': 0, - 'path': '1', - 'path_in_store': None, - 'position': '1', - 'thumbnail': None, - 'updated_at': '2007-08-07 09:50:15', - 'url_key': None, - 'url_path': None}, - ('catalog_category.info', (3, )): {'all_children': '3,10,22,23,13,12,25,26,15,27,28,29,30,31,32,33,34,8,18,19,4,5,16,17', - 'available_sort_by': None, - 'category_id': '3', - 'children': '10,13,18', - 'created_at': '2007-08-22 15:54:41', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': None, - 'landing_page': None, - 'level': '1', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': 'Root Catalog', - 'page_layout': None, - 'parent_id': 1, - 'path': '1/3', - 'path_in_store': '', - 'position': '3', - 'thumbnail': None, - 'updated_at': '2007-12-05 04:38:59', - 'url_key': 'root-catalog', - 'url_path': None}, - ('catalog_category.info', (3, u'2', )): {'all_children': '3,10,22,23,13,12,25,26,15,27,28,29,30,31,32,33,34,8,18,19,4,5,16,17', - 'available_sort_by': None, - 'category_id': '3', - 'children': '10,13,18', - 'created_at': '2007-08-22 15:54:41', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': None, - 'landing_page': None, - 'level': '1', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': 'Root Catalog', - 'page_layout': None, - 'parent_id': 1, - 'path': '1/3', - 'path_in_store': '', - 'position': '3', - 'thumbnail': None, - 'updated_at': '2007-12-05 04:38:59', - 'url_key': 'root-catalog', - 'url_path': None}, - ('catalog_category.info', (3, u'3', )): {'all_children': '3,10,22,23,13,12,25,26,15,27,28,29,30,31,32,33,34,8,18,19,4,5,16,17', - 'available_sort_by': None, - 'category_id': '3', - 'children': '10,13,18', - 'created_at': '2007-08-22 15:54:41', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': None, - 'landing_page': None, - 'level': '1', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': 'Root Catalog', - 'page_layout': None, - 'parent_id': 1, - 'path': '1/3', - 'path_in_store': '', - 'position': '3', - 'thumbnail': None, - 'updated_at': '2007-12-05 04:38:59', - 'url_key': 'root-catalog', - 'url_path': None}, - ('catalog_category.info', (4, )): {'all_children': '4', - 'available_sort_by': None, - 'category_id': '4', - 'children': '', - 'created_at': '2007-08-22 15:55:34', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'shirts.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Shirts', - 'page_layout': '', - 'parent_id': 18, - 'path': '1/3/18/4', - 'path_in_store': '4,18', - 'position': '4', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:56:48', - 'url_key': 'shirts', - 'url_path': 'apparel/shirts.html'}, - ('catalog_category.info', (4, u'2', )): {'all_children': '4', - 'available_sort_by': None, - 'category_id': '4', - 'children': '', - 'created_at': '2007-08-22 15:55:34', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'shirts.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Shirts', - 'page_layout': '', - 'parent_id': 18, - 'path': '1/3/18/4', - 'path_in_store': '4,18', - 'position': '4', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:56:48', - 'url_key': 'shirts', - 'url_path': 'apparel/shirts.html'}, - ('catalog_category.info', (4, u'3', )): {'all_children': '4', - 'available_sort_by': None, - 'category_id': '4', - 'children': '', - 'created_at': '2007-08-22 15:55:34', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'shirts.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Shirts', - 'page_layout': '', - 'parent_id': 18, - 'path': '1/3/18/4', - 'path_in_store': '4,18', - 'position': '4', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:56:48', - 'url_key': 'shirts', - 'url_path': 'apparel/shirts.html'}, - ('catalog_category.info', (5, )): {'all_children': '5,16,17', - 'available_sort_by': None, - 'category_id': '5', - 'children': '16,17', - 'created_at': '2007-08-22 16:21:29', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'shoes.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Shoes', - 'page_layout': '', - 'parent_id': 18, - 'path': '1/3/18/5', - 'path_in_store': '5,18', - 'position': '5', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:55:38', - 'url_key': 'shoes', - 'url_path': 'apparel/shoes.html'}, - ('catalog_category.info', (5, u'2', )): {'all_children': '5,16,17', - 'available_sort_by': None, - 'category_id': '5', - 'children': '16,17', - 'created_at': '2007-08-22 16:21:29', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'shoes.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Shoes', - 'page_layout': '', - 'parent_id': 18, - 'path': '1/3/18/5', - 'path_in_store': '5,18', - 'position': '5', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:55:38', - 'url_key': 'shoes', - 'url_path': 'apparel/shoes.html'}, - ('catalog_category.info', (5, u'3', )): {'all_children': '5,16,17', - 'available_sort_by': None, - 'category_id': '5', - 'children': '16,17', - 'created_at': '2007-08-22 16:21:29', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'shoes.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Shoes', - 'page_layout': '', - 'parent_id': 18, - 'path': '1/3/18/5', - 'path_in_store': '5,18', - 'position': '5', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:55:38', - 'url_key': 'shoes', - 'url_path': 'apparel/shoes.html'}, - ('catalog_category.info', (8, )): {'all_children': '8', - 'available_sort_by': None, - 'category_id': '8', - 'children': '', - 'created_at': '2007-08-22 18:10:30', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS_AND_PAGE', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': '4', - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Cell Phones', - 'page_layout': '', - 'parent_id': 13, - 'path': '1/3/13/8', - 'path_in_store': '8,13', - 'position': '8', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:51:26', - 'url_key': 'cell-phones', - 'url_path': 'electronics/cell-phones.html'}, - ('catalog_category.info', (8, u'2', )): {'all_children': '8', - 'available_sort_by': None, - 'category_id': '8', - 'children': '', - 'created_at': '2007-08-22 18:10:30', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS_AND_PAGE', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': '4', - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Cell Phones', - 'page_layout': '', - 'parent_id': 13, - 'path': '1/3/13/8', - 'path_in_store': '8,13', - 'position': '8', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:51:26', - 'url_key': 'cell-phones', - 'url_path': 'electronics/cell-phones.html'}, - ('catalog_category.info', (8, u'3', )): {'all_children': '8', - 'available_sort_by': None, - 'category_id': '8', - 'children': '', - 'created_at': '2007-08-22 18:10:30', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS_AND_PAGE', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': '4', - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Cell Phones', - 'page_layout': '', - 'parent_id': 13, - 'path': '1/3/13/8', - 'path_in_store': '8,13', - 'position': '8', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:51:26', - 'url_key': 'cell-phones', - 'url_path': 'electronics/cell-phones.html'}, - ('catalog_category.info', (10, )): {'all_children': '10,22,23', - 'available_sort_by': None, - 'category_id': '10', - 'children': '22,23', - 'created_at': '2007-08-23 11:45:22', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'furniture.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '2', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Furniture', - 'page_layout': '', - 'parent_id': 3, - 'path': '1/3/10', - 'path_in_store': '10', - 'position': '10', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:01:18', - 'url_key': 'furniture', - 'url_path': 'furniture.html'}, - ('catalog_category.info', (10, u'2', )): {'all_children': '10,22,23', - 'available_sort_by': None, - 'category_id': '10', - 'children': '22,23', - 'created_at': '2007-08-23 11:45:22', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'furniture.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '2', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Furniture', - 'page_layout': '', - 'parent_id': 3, - 'path': '1/3/10', - 'path_in_store': '10', - 'position': '10', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:01:18', - 'url_key': 'furniture', - 'url_path': 'furniture.html'}, - ('catalog_category.info', (10, u'3', )): {'all_children': '10,22,23', - 'available_sort_by': None, - 'category_id': '10', - 'children': '22,23', - 'created_at': '2007-08-23 11:45:22', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'furniture.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '2', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Furniture', - 'page_layout': '', - 'parent_id': 3, - 'path': '1/3/10', - 'path_in_store': '10', - 'position': '10', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:01:18', - 'url_key': 'furniture', - 'url_path': 'furniture.html'}, - ('catalog_category.info', (12, )): {'all_children': '12,25,26', - 'available_sort_by': None, - 'category_id': '12', - 'children': '25,26', - 'created_at': '2007-08-24 12:34:30', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'camera.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Cameras', - 'page_layout': '', - 'parent_id': 13, - 'path': '1/3/13/12', - 'path_in_store': '12,13', - 'position': '12', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:54:48', - 'url_key': 'cameras', - 'url_path': 'electronics/cameras.html'}, - ('catalog_category.info', (12, u'2', )): {'all_children': '12,25,26', - 'available_sort_by': None, - 'category_id': '12', - 'children': '25,26', - 'created_at': '2007-08-24 12:34:30', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'camera.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Cameras', - 'page_layout': '', - 'parent_id': 13, - 'path': '1/3/13/12', - 'path_in_store': '12,13', - 'position': '12', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:54:48', - 'url_key': 'cameras', - 'url_path': 'electronics/cameras.html'}, - ('catalog_category.info', (12, u'3', )): {'all_children': '12,25,26', - 'available_sort_by': None, - 'category_id': '12', - 'children': '25,26', - 'created_at': '2007-08-24 12:34:30', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'camera.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Cameras', - 'page_layout': '', - 'parent_id': 13, - 'path': '1/3/13/12', - 'path_in_store': '12,13', - 'position': '12', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:54:48', - 'url_key': 'cameras', - 'url_path': 'electronics/cameras.html'}, - ('catalog_category.info', (13, )): {'all_children': '13,12,25,26,15,27,28,29,30,31,32,33,34,8', - 'available_sort_by': None, - 'category_id': '13', - 'children': '8,12,15', - 'created_at': '2007-08-24 13:31:01', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': 'PAGE', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': '3', - 'level': '2', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': 'Electronics', - 'page_layout': 'one_column', - 'parent_id': 3, - 'path': '1/3/13', - 'path_in_store': '13', - 'position': '13', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:02:23', - 'url_key': 'electronics', - 'url_path': 'electronics.html'}, - ('catalog_category.info', (13, u'2', )): {'all_children': '13,12,25,26,15,27,28,29,30,31,32,33,34,8', - 'available_sort_by': None, - 'category_id': '13', - 'children': '8,12,15', - 'created_at': '2007-08-24 13:31:01', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': 'PAGE', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': '3', - 'level': '2', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': 'Electronics', - 'page_layout': 'one_column', - 'parent_id': 3, - 'path': '1/3/13', - 'path_in_store': '13', - 'position': '13', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:02:23', - 'url_key': 'electronics', - 'url_path': 'electronics.html'}, - ('catalog_category.info', (13, u'3', )): {'all_children': '13,12,25,26,15,27,28,29,30,31,32,33,34,8', - 'available_sort_by': None, - 'category_id': '13', - 'children': '8,12,15', - 'created_at': '2007-08-24 13:31:01', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': 'PAGE', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': '3', - 'level': '2', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': 'Electronics', - 'page_layout': 'one_column', - 'parent_id': 3, - 'path': '1/3/13', - 'path_in_store': '13', - 'position': '13', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:02:23', - 'url_key': 'electronics', - 'url_path': 'electronics.html'}, - ('catalog_category.info', (15, )): {'all_children': '15,27,28,29,30,31,32,33,34', - 'available_sort_by': None, - 'category_id': '15', - 'children': '27,28,29,30,31,32,33,34', - 'created_at': '2007-08-24 13:33:17', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Computers', - 'page_layout': '', - 'parent_id': 13, - 'path': '1/3/13/15', - 'path_in_store': '15,13', - 'position': '15', - 'thumbnail': None, - 'updated_at': '2008-07-25 01:53:39', - 'url_key': 'computers', - 'url_path': 'electronics/computers.html'}, - ('catalog_category.info', (15, u'2', )): {'all_children': '15,27,28,29,30,31,32,33,34', - 'available_sort_by': None, - 'category_id': '15', - 'children': '27,28,29,30,31,32,33,34', - 'created_at': '2007-08-24 13:33:17', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Computers', - 'page_layout': '', - 'parent_id': 13, - 'path': '1/3/13/15', - 'path_in_store': '15,13', - 'position': '15', - 'thumbnail': None, - 'updated_at': '2008-07-25 01:53:39', - 'url_key': 'computers', - 'url_path': 'electronics/computers.html'}, - ('catalog_category.info', (15, u'3', )): {'all_children': '15,27,28,29,30,31,32,33,34', - 'available_sort_by': None, - 'category_id': '15', - 'children': '27,28,29,30,31,32,33,34', - 'created_at': '2007-08-24 13:33:17', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Computers', - 'page_layout': '', - 'parent_id': 13, - 'path': '1/3/13/15', - 'path_in_store': '15,13', - 'position': '15', - 'thumbnail': None, - 'updated_at': '2008-07-25 01:53:39', - 'url_key': 'computers', - 'url_path': 'electronics/computers.html'}, - ('catalog_category.info', (16, )): {'all_children': '16', - 'available_sort_by': None, - 'category_id': '16', - 'children': '', - 'created_at': '2007-08-24 15:41:52', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Mens', - 'page_layout': '', - 'parent_id': 5, - 'path': '1/3/18/5/16', - 'path_in_store': '16,5,18', - 'position': '16', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:56:01', - 'url_key': 'mens', - 'url_path': 'apparel/shoes/mens.html'}, - ('catalog_category.info', (16, u'2', )): {'all_children': '16', - 'available_sort_by': None, - 'category_id': '16', - 'children': '', - 'created_at': '2007-08-24 15:41:52', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Mens', - 'page_layout': '', - 'parent_id': 5, - 'path': '1/3/18/5/16', - 'path_in_store': '16,5,18', - 'position': '16', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:56:01', - 'url_key': 'mens', - 'url_path': 'apparel/shoes/mens.html'}, - ('catalog_category.info', (16, u'3', )): {'all_children': '16', - 'available_sort_by': None, - 'category_id': '16', - 'children': '', - 'created_at': '2007-08-24 15:41:52', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Mens', - 'page_layout': '', - 'parent_id': 5, - 'path': '1/3/18/5/16', - 'path_in_store': '16,5,18', - 'position': '16', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:56:01', - 'url_key': 'mens', - 'url_path': 'apparel/shoes/mens.html'}, - ('catalog_category.info', (17, )): {'all_children': '17', - 'available_sort_by': None, - 'category_id': '17', - 'children': '', - 'created_at': '2007-08-24 15:43:07', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Womens', - 'page_layout': '', - 'parent_id': 5, - 'path': '1/3/18/5/17', - 'path_in_store': '17,5,18', - 'position': '17', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:56:28', - 'url_key': 'womens', - 'url_path': 'apparel/shoes/womens.html'}, - ('catalog_category.info', (17, u'2', )): {'all_children': '17', - 'available_sort_by': None, - 'category_id': '17', - 'children': '', - 'created_at': '2007-08-24 15:43:07', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Womens', - 'page_layout': '', - 'parent_id': 5, - 'path': '1/3/18/5/17', - 'path_in_store': '17,5,18', - 'position': '17', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:56:28', - 'url_key': 'womens', - 'url_path': 'apparel/shoes/womens.html'}, - ('catalog_category.info', (17, u'3', )): {'all_children': '17', - 'available_sort_by': None, - 'category_id': '17', - 'children': '', - 'created_at': '2007-08-24 15:43:07', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Womens', - 'page_layout': '', - 'parent_id': 5, - 'path': '1/3/18/5/17', - 'path_in_store': '17,5,18', - 'position': '17', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:56:28', - 'url_key': 'womens', - 'url_path': 'apparel/shoes/womens.html'}, - ('catalog_category.info', (18, )): {'all_children': '18,19,4,5,16,17', - 'available_sort_by': None, - 'category_id': '18', - 'children': '19,4,5', - 'created_at': '2007-08-24 15:44:31', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'apparel.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '2', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Apparel', - 'page_layout': '', - 'parent_id': 3, - 'path': '1/3/18', - 'path_in_store': '18', - 'position': '18', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:54:16', - 'url_key': 'apparel', - 'url_path': 'apparel.html'}, - ('catalog_category.info', (18, u'2', )): {'all_children': '18,19,4,5,16,17', - 'available_sort_by': None, - 'category_id': '18', - 'children': '19,4,5', - 'created_at': '2007-08-24 15:44:31', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'apparel.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '2', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Apparel', - 'page_layout': '', - 'parent_id': 3, - 'path': '1/3/18', - 'path_in_store': '18', - 'position': '18', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:54:16', - 'url_key': 'apparel', - 'url_path': 'apparel.html'}, - ('catalog_category.info', (18, u'3', )): {'all_children': '18,19,4,5,16,17', - 'available_sort_by': None, - 'category_id': '18', - 'children': '19,4,5', - 'created_at': '2007-08-24 15:44:31', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'apparel.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '2', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Apparel', - 'page_layout': '', - 'parent_id': 3, - 'path': '1/3/18', - 'path_in_store': '18', - 'position': '18', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:54:16', - 'url_key': 'apparel', - 'url_path': 'apparel.html'}, - ('catalog_category.info', (19, )): {'all_children': '19', - 'available_sort_by': None, - 'category_id': '19', - 'children': '', - 'created_at': '2007-08-24 20:05:28', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Hoodies', - 'page_layout': '', - 'parent_id': 18, - 'path': '1/3/18/19', - 'path_in_store': '19,18', - 'position': '19', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:57:03', - 'url_key': 'hoodies', - 'url_path': 'apparel/hoodies.html'}, - ('catalog_category.info', (19, u'2', )): {'all_children': '19', - 'available_sort_by': None, - 'category_id': '19', - 'children': '', - 'created_at': '2007-08-24 20:05:28', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Hoodies', - 'page_layout': '', - 'parent_id': 18, - 'path': '1/3/18/19', - 'path_in_store': '19,18', - 'position': '19', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:57:03', - 'url_key': 'hoodies', - 'url_path': 'apparel/hoodies.html'}, - ('catalog_category.info', (19, u'3', )): {'all_children': '19', - 'available_sort_by': None, - 'category_id': '19', - 'children': '', - 'created_at': '2007-08-24 20:05:28', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Hoodies', - 'page_layout': '', - 'parent_id': 18, - 'path': '1/3/18/19', - 'path_in_store': '19,18', - 'position': '19', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:57:03', - 'url_key': 'hoodies', - 'url_path': 'apparel/hoodies.html'}, - ('catalog_category.info', (20, )): {'all_children': '20', - 'available_sort_by': None, - 'category_id': '20', - 'children': '', - 'created_at': '2007-08-25 13:14:09', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '0', - 'is_anchor': '0', - 'landing_page': None, - 'level': '2', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Household Items', - 'page_layout': '', - 'parent_id': 3, - 'path': '1/3/20', - 'path_in_store': '20', - 'position': '20', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:58:57', - 'url_key': 'household-items', - 'url_path': 'household-items.html'}, - ('catalog_category.info', (20, u'2', )): {'all_children': '20', - 'available_sort_by': None, - 'category_id': '20', - 'children': '', - 'created_at': '2007-08-25 13:14:09', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '0', - 'is_anchor': '0', - 'landing_page': None, - 'level': '2', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Household Items', - 'page_layout': '', - 'parent_id': 3, - 'path': '1/3/20', - 'path_in_store': '20', - 'position': '20', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:58:57', - 'url_key': 'household-items', - 'url_path': 'household-items.html'}, - ('catalog_category.info', (20, u'3', )): {'all_children': '20', - 'available_sort_by': None, - 'category_id': '20', - 'children': '', - 'created_at': '2007-08-25 13:14:09', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '0', - 'is_anchor': '0', - 'landing_page': None, - 'level': '2', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Household Items', - 'page_layout': '', - 'parent_id': 3, - 'path': '1/3/20', - 'path_in_store': '20', - 'position': '20', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:58:57', - 'url_key': 'household-items', - 'url_path': 'household-items.html'}, - ('catalog_category.info', (22, )): {'all_children': '22', - 'available_sort_by': None, - 'category_id': '22', - 'children': '', - 'created_at': '2007-08-26 14:49:39', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS_AND_PAGE', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Living Room', - 'page_layout': '', - 'parent_id': 10, - 'path': '1/3/10/22', - 'path_in_store': '22,10', - 'position': '22', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:01:45', - 'url_key': 'living-room', - 'url_path': 'furniture/living-room.html'}, - ('catalog_category.info', (22, u'2', )): {'all_children': '22', - 'available_sort_by': None, - 'category_id': '22', - 'children': '', - 'created_at': '2007-08-26 14:49:39', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS_AND_PAGE', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Living Room', - 'page_layout': '', - 'parent_id': 10, - 'path': '1/3/10/22', - 'path_in_store': '22,10', - 'position': '22', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:01:45', - 'url_key': 'living-room', - 'url_path': 'furniture/living-room.html'}, - ('catalog_category.info', (22, u'3', )): {'all_children': '22', - 'available_sort_by': None, - 'category_id': '22', - 'children': '', - 'created_at': '2007-08-26 14:49:39', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS_AND_PAGE', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Living Room', - 'page_layout': '', - 'parent_id': 10, - 'path': '1/3/10/22', - 'path_in_store': '22,10', - 'position': '22', - 'thumbnail': None, - 'updated_at': '2008-08-08 00:01:45', - 'url_key': 'living-room', - 'url_path': 'furniture/living-room.html'}, - ('catalog_category.info', (23, )): {'all_children': '23', - 'available_sort_by': None, - 'category_id': '23', - 'children': '', - 'created_at': '2007-08-27 10:35:27', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'bedroom.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Bedroom', - 'page_layout': '', - 'parent_id': 10, - 'path': '1/3/10/23', - 'path_in_store': '23,10', - 'position': '23', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:49:18', - 'url_key': 'bedroom', - 'url_path': 'furniture/bedroom.html'}, - ('catalog_category.info', (23, u'2', )): {'all_children': '23', - 'available_sort_by': None, - 'category_id': '23', - 'children': '', - 'created_at': '2007-08-27 10:35:27', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'bedroom.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Bedroom', - 'page_layout': '', - 'parent_id': 10, - 'path': '1/3/10/23', - 'path_in_store': '23,10', - 'position': '23', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:49:18', - 'url_key': 'bedroom', - 'url_path': 'furniture/bedroom.html'}, - ('catalog_category.info', (23, u'3', )): {'all_children': '23', - 'available_sort_by': None, - 'category_id': '23', - 'children': '', - 'created_at': '2007-08-27 10:35:27', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': 'bedroom.jpg', - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '3', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Bedroom', - 'page_layout': '', - 'parent_id': 10, - 'path': '1/3/10/23', - 'path_in_store': '23,10', - 'position': '23', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:49:18', - 'url_key': 'bedroom', - 'url_path': 'furniture/bedroom.html'}, - ('catalog_category.info', (24, )): {'all_children': '24', - 'available_sort_by': None, - 'category_id': '24', - 'children': '', - 'created_at': '2007-08-28 18:32:41', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '0', - 'is_anchor': None, - 'landing_page': None, - 'level': '3', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': 'Pants', - 'page_layout': None, - 'parent_id': 18, - 'path': '1/3/18/24', - 'path_in_store': '24,18', - 'position': '24', - 'thumbnail': None, - 'updated_at': '2007-08-29 23:20:36', - 'url_key': 'pants', - 'url_path': 'apparel/pants.html'}, - ('catalog_category.info', (24, u'2', )): {'all_children': '24', - 'available_sort_by': None, - 'category_id': '24', - 'children': '', - 'created_at': '2007-08-28 18:32:41', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '0', - 'is_anchor': None, - 'landing_page': None, - 'level': '3', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': 'Pants', - 'page_layout': None, - 'parent_id': 18, - 'path': '1/3/18/24', - 'path_in_store': '24,18', - 'position': '24', - 'thumbnail': None, - 'updated_at': '2007-08-29 23:20:36', - 'url_key': 'pants', - 'url_path': 'apparel/pants.html'}, - ('catalog_category.info', (24, u'3', )): {'all_children': '24', - 'available_sort_by': None, - 'category_id': '24', - 'children': '', - 'created_at': '2007-08-28 18:32:41', - 'custom_apply_to_products': None, - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'custom_use_parent_settings': None, - 'default_sort_by': None, - 'description': None, - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '0', - 'is_anchor': None, - 'landing_page': None, - 'level': '3', - 'meta_description': None, - 'meta_keywords': None, - 'meta_title': None, - 'name': 'Pants', - 'page_layout': None, - 'parent_id': 18, - 'path': '1/3/18/24', - 'path_in_store': '24,18', - 'position': '24', - 'thumbnail': None, - 'updated_at': '2007-08-29 23:20:36', - 'url_key': 'pants', - 'url_path': 'apparel/pants.html'}, - ('catalog_category.info', (25, )): {'all_children': '25', - 'available_sort_by': None, - 'category_id': '25', - 'children': '', - 'created_at': '2007-08-29 19:49:52', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': 'Random accessories for different electronic items', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': 'electric, accesories, gadgets', - 'meta_title': '', - 'name': 'Accessories', - 'page_layout': '', - 'parent_id': 12, - 'path': '1/3/13/12/25', - 'path_in_store': '25,12,13', - 'position': '25', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:46:35', - 'url_key': 'accessories', - 'url_path': 'electronics/cameras/accessories.html'}, - ('catalog_category.info', (25, u'2', )): {'all_children': '25', - 'available_sort_by': None, - 'category_id': '25', - 'children': '', - 'created_at': '2007-08-29 19:49:52', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': 'Random accessories for different electronic items', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': 'electric, accesories, gadgets', - 'meta_title': '', - 'name': 'Accessories', - 'page_layout': '', - 'parent_id': 12, - 'path': '1/3/13/12/25', - 'path_in_store': '25,12,13', - 'position': '25', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:46:35', - 'url_key': 'accessories', - 'url_path': 'electronics/cameras/accessories.html'}, - ('catalog_category.info', (25, u'3', )): {'all_children': '25', - 'available_sort_by': None, - 'category_id': '25', - 'children': '', - 'created_at': '2007-08-29 19:49:52', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': 'Random accessories for different electronic items', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': 'electric, accesories, gadgets', - 'meta_title': '', - 'name': 'Accessories', - 'page_layout': '', - 'parent_id': 12, - 'path': '1/3/13/12/25', - 'path_in_store': '25,12,13', - 'position': '25', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:46:35', - 'url_key': 'accessories', - 'url_path': 'electronics/cameras/accessories.html'}, - ('catalog_category.info', (26, )): {'all_children': '26', - 'available_sort_by': None, - 'category_id': '26', - 'children': '', - 'created_at': '2007-08-29 20:37:22', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Digital Cameras', - 'page_layout': '', - 'parent_id': 12, - 'path': '1/3/13/12/26', - 'path_in_store': '26,12,13', - 'position': '26', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:47:02', - 'url_key': 'digital-cameras', - 'url_path': 'electronics/cameras/digital-cameras.html'}, - ('catalog_category.info', (26, u'2', )): {'all_children': '26', - 'available_sort_by': None, - 'category_id': '26', - 'children': '', - 'created_at': '2007-08-29 20:37:22', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Digital Cameras', - 'page_layout': '', - 'parent_id': 12, - 'path': '1/3/13/12/26', - 'path_in_store': '26,12,13', - 'position': '26', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:47:02', - 'url_key': 'digital-cameras', - 'url_path': 'electronics/cameras/digital-cameras.html'}, - ('catalog_category.info', (26, u'3', )): {'all_children': '26', - 'available_sort_by': None, - 'category_id': '26', - 'children': '', - 'created_at': '2007-08-29 20:37:22', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Digital Cameras', - 'page_layout': '', - 'parent_id': 12, - 'path': '1/3/13/12/26', - 'path_in_store': '26,12,13', - 'position': '26', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:47:02', - 'url_key': 'digital-cameras', - 'url_path': 'electronics/cameras/digital-cameras.html'}, - ('catalog_category.info', (27, )): {'all_children': '27', - 'available_sort_by': None, - 'category_id': '27', - 'children': '', - 'created_at': '2008-07-25 00:36:22', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Build Your Own', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/27', - 'path_in_store': None, - 'position': '1', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:48:15', - 'url_key': 'build-your-own', - 'url_path': 'electronics/computers/build-your-own.html'}, - ('catalog_category.info', (27, u'2', )): {'all_children': '27', - 'available_sort_by': None, - 'category_id': '27', - 'children': '', - 'created_at': '2008-07-25 00:36:22', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Build Your Own', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/27', - 'path_in_store': None, - 'position': '1', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:48:15', - 'url_key': 'build-your-own', - 'url_path': 'electronics/computers/build-your-own.html'}, - ('catalog_category.info', (27, u'3', )): {'all_children': '27', - 'available_sort_by': None, - 'category_id': '27', - 'children': '', - 'created_at': '2008-07-25 00:36:22', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '0', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Build Your Own', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/27', - 'path_in_store': None, - 'position': '1', - 'thumbnail': None, - 'updated_at': '2008-08-07 23:48:15', - 'url_key': 'build-your-own', - 'url_path': 'electronics/computers/build-your-own.html'}, - ('catalog_category.info', (28, )): {'all_children': '28', - 'available_sort_by': None, - 'category_id': '28', - 'children': '', - 'created_at': '2008-07-25 00:39:10', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Laptops', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/28', - 'path_in_store': None, - 'position': '2', - 'thumbnail': None, - 'updated_at': '2008-08-08 13:02:59', - 'url_key': 'laptops', - 'url_path': 'electronics/computers/laptops.html'}, - ('catalog_category.info', (28, u'2', )): {'all_children': '28', - 'available_sort_by': None, - 'category_id': '28', - 'children': '', - 'created_at': '2008-07-25 00:39:10', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Laptops', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/28', - 'path_in_store': None, - 'position': '2', - 'thumbnail': None, - 'updated_at': '2008-08-08 13:02:59', - 'url_key': 'laptops', - 'url_path': 'electronics/computers/laptops.html'}, - ('catalog_category.info', (28, u'3', )): {'all_children': '28', - 'available_sort_by': None, - 'category_id': '28', - 'children': '', - 'created_at': '2008-07-25 00:39:10', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Laptops', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/28', - 'path_in_store': None, - 'position': '2', - 'thumbnail': None, - 'updated_at': '2008-08-08 13:02:59', - 'url_key': 'laptops', - 'url_path': 'electronics/computers/laptops.html'}, - ('catalog_category.info', (29, )): {'all_children': '29', - 'available_sort_by': None, - 'category_id': '29', - 'children': '', - 'created_at': '2008-07-25 00:39:54', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Hard Drives', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/29', - 'path_in_store': None, - 'position': '3', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:39:54', - 'url_key': 'hard-drives', - 'url_path': 'electronics/computers/hard-drives.html'}, - ('catalog_category.info', (29, u'2', )): {'all_children': '29', - 'available_sort_by': None, - 'category_id': '29', - 'children': '', - 'created_at': '2008-07-25 00:39:54', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Hard Drives', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/29', - 'path_in_store': None, - 'position': '3', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:39:54', - 'url_key': 'hard-drives', - 'url_path': 'electronics/computers/hard-drives.html'}, - ('catalog_category.info', (29, u'3', )): {'all_children': '29', - 'available_sort_by': None, - 'category_id': '29', - 'children': '', - 'created_at': '2008-07-25 00:39:54', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Hard Drives', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/29', - 'path_in_store': None, - 'position': '3', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:39:54', - 'url_key': 'hard-drives', - 'url_path': 'electronics/computers/hard-drives.html'}, - ('catalog_category.info', (30, )): {'all_children': '30', - 'available_sort_by': None, - 'category_id': '30', - 'children': '', - 'created_at': '2008-07-25 00:41:11', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Monitors', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/30', - 'path_in_store': None, - 'position': '4', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:41:11', - 'url_key': 'monitors', - 'url_path': 'electronics/computers/monitors.html'}, - ('catalog_category.info', (30, u'2', )): {'all_children': '30', - 'available_sort_by': None, - 'category_id': '30', - 'children': '', - 'created_at': '2008-07-25 00:41:11', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Monitors', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/30', - 'path_in_store': None, - 'position': '4', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:41:11', - 'url_key': 'monitors', - 'url_path': 'electronics/computers/monitors.html'}, - ('catalog_category.info', (30, u'3', )): {'all_children': '30', - 'available_sort_by': None, - 'category_id': '30', - 'children': '', - 'created_at': '2008-07-25 00:41:11', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Monitors', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/30', - 'path_in_store': None, - 'position': '4', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:41:11', - 'url_key': 'monitors', - 'url_path': 'electronics/computers/monitors.html'}, - ('catalog_category.info', (31, )): {'all_children': '31', - 'available_sort_by': None, - 'category_id': '31', - 'children': '', - 'created_at': '2008-07-25 00:41:56', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'RAM / Memory', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/31', - 'path_in_store': None, - 'position': '5', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:41:56', - 'url_key': 'ram-memory', - 'url_path': 'electronics/computers/ram-memory.html'}, - ('catalog_category.info', (31, u'2', )): {'all_children': '31', - 'available_sort_by': None, - 'category_id': '31', - 'children': '', - 'created_at': '2008-07-25 00:41:56', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'RAM / Memory', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/31', - 'path_in_store': None, - 'position': '5', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:41:56', - 'url_key': 'ram-memory', - 'url_path': 'electronics/computers/ram-memory.html'}, - ('catalog_category.info', (31, u'3', )): {'all_children': '31', - 'available_sort_by': None, - 'category_id': '31', - 'children': '', - 'created_at': '2008-07-25 00:41:56', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'RAM / Memory', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/31', - 'path_in_store': None, - 'position': '5', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:41:56', - 'url_key': 'ram-memory', - 'url_path': 'electronics/computers/ram-memory.html'}, - ('catalog_category.info', (32, )): {'all_children': '32', - 'available_sort_by': None, - 'category_id': '32', - 'children': '', - 'created_at': '2008-07-25 00:42:57', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Cases', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/32', - 'path_in_store': None, - 'position': '6', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:42:57', - 'url_key': 'cases', - 'url_path': 'electronics/computers/cases.html'}, - ('catalog_category.info', (32, u'2', )): {'all_children': '32', - 'available_sort_by': None, - 'category_id': '32', - 'children': '', - 'created_at': '2008-07-25 00:42:57', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Cases', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/32', - 'path_in_store': None, - 'position': '6', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:42:57', - 'url_key': 'cases', - 'url_path': 'electronics/computers/cases.html'}, - ('catalog_category.info', (32, u'3', )): {'all_children': '32', - 'available_sort_by': None, - 'category_id': '32', - 'children': '', - 'created_at': '2008-07-25 00:42:57', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Cases', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/32', - 'path_in_store': None, - 'position': '6', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:42:57', - 'url_key': 'cases', - 'url_path': 'electronics/computers/cases.html'}, - ('catalog_category.info', (33, )): {'all_children': '33', - 'available_sort_by': None, - 'category_id': '33', - 'children': '', - 'created_at': '2008-07-25 00:43:25', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Processors', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/33', - 'path_in_store': None, - 'position': '7', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:43:25', - 'url_key': 'processors', - 'url_path': 'electronics/computers/processors.html'}, - ('catalog_category.info', (33, u'2', )): {'all_children': '33', - 'available_sort_by': None, - 'category_id': '33', - 'children': '', - 'created_at': '2008-07-25 00:43:25', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Processors', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/33', - 'path_in_store': None, - 'position': '7', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:43:25', - 'url_key': 'processors', - 'url_path': 'electronics/computers/processors.html'}, - ('catalog_category.info', (33, u'3', )): {'all_children': '33', - 'available_sort_by': None, - 'category_id': '33', - 'children': '', - 'created_at': '2008-07-25 00:43:25', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Processors', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/33', - 'path_in_store': None, - 'position': '7', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:43:25', - 'url_key': 'processors', - 'url_path': 'electronics/computers/processors.html'}, - ('catalog_category.info', (34, )): {'all_children': '34', - 'available_sort_by': None, - 'category_id': '34', - 'children': '', - 'created_at': '2008-07-25 00:44:17', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Peripherals', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/34', - 'path_in_store': None, - 'position': '8', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:44:17', - 'url_key': 'peripherals', - 'url_path': 'electronics/computers/peripherals.html'}, - ('catalog_category.info', (34, u'2', )): {'all_children': '34', - 'available_sort_by': None, - 'category_id': '34', - 'children': '', - 'created_at': '2008-07-25 00:44:17', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Peripherals', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/34', - 'path_in_store': None, - 'position': '8', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:44:17', - 'url_key': 'peripherals', - 'url_path': 'electronics/computers/peripherals.html'}, - ('catalog_category.info', (34, u'3', )): {'all_children': '34', - 'available_sort_by': None, - 'category_id': '34', - 'children': '', - 'created_at': '2008-07-25 00:44:17', - 'custom_apply_to_products': '1', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'custom_use_parent_settings': '1', - 'default_sort_by': None, - 'description': '', - 'display_mode': 'PRODUCTS', - 'filter_price_range': None, - 'image': None, - 'include_in_menu': '1', - 'increment_id': None, - 'is_active': '1', - 'is_anchor': '1', - 'landing_page': None, - 'level': '4', - 'meta_description': '', - 'meta_keywords': '', - 'meta_title': '', - 'name': 'Peripherals', - 'page_layout': '', - 'parent_id': 15, - 'path': '1/3/13/15/34', - 'path_in_store': None, - 'position': '8', - 'thumbnail': None, - 'updated_at': '2008-07-25 00:44:17', - 'url_key': 'peripherals', - 'url_path': 'electronics/computers/peripherals.html'}, - ('catalog_category.tree', ()): {'category_id': '1', - 'children': [{'category_id': '3', - 'children': [{'category_id': '10', - 'children': [{'category_id': '22', - 'children': [], - 'is_active': '1', - 'level': '3', - 'name': 'Living Room', - 'parent_id': '10', - 'position': '22'}, - {'category_id': '23', - 'children': [], - 'is_active': '1', - 'level': '3', - 'name': 'Bedroom', - 'parent_id': '10', - 'position': '23'}], - 'is_active': '1', - 'level': '2', - 'name': 'Furniture', - 'parent_id': '3', - 'position': '10'}, - {'category_id': '13', - 'children': [{'category_id': '8', - 'children': [], - 'is_active': '1', - 'level': '3', - 'name': 'Cell Phones', - 'parent_id': '13', - 'position': '8'}, - {'category_id': '12', - 'children': [{'category_id': '25', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Accessories', - 'parent_id': '12', - 'position': '25'}, - {'category_id': '26', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Digital Cameras', - 'parent_id': '12', - 'position': '26'}], - 'is_active': '1', - 'level': '3', - 'name': 'Cameras', - 'parent_id': '13', - 'position': '12'}, - {'category_id': '15', - 'children': [{'category_id': '27', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Build Your Own', - 'parent_id': '15', - 'position': '1'}, - {'category_id': '28', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Laptops', - 'parent_id': '15', - 'position': '2'}, - {'category_id': '29', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Hard Drives', - 'parent_id': '13', - 'position': '3'}, - {'category_id': '30', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Monitors', - 'parent_id': '13', - 'position': '4'}, - {'category_id': '31', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'RAM / Memory', - 'parent_id': '13', - 'position': '5'}, - {'category_id': '32', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Cases', - 'parent_id': '13', - 'position': '6'}, - {'category_id': '33', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Processors', - 'parent_id': '13', - 'position': '7'}, - {'category_id': '34', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Peripherals', - 'parent_id': '13', - 'position': '8'}], - 'is_active': '1', - 'level': '3', - 'name': 'Computers', - 'parent_id': '13', - 'position': '15'}], - 'is_active': '1', - 'level': '2', - 'name': 'Electronics', - 'parent_id': '3', - 'position': '13'}, - {'category_id': '18', - 'children': [{'category_id': '4', - 'children': [], - 'is_active': '1', - 'level': '3', - 'name': 'Shirts', - 'parent_id': '18', - 'position': '4'}, - {'category_id': '5', - 'children': [{'category_id': '16', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Mens', - 'parent_id': '5', - 'position': '16'}, - {'category_id': '17', - 'children': [], - 'is_active': '1', - 'level': '4', - 'name': 'Womens', - 'parent_id': '5', - 'position': '17'}], - 'is_active': '1', - 'level': '3', - 'name': 'Shoes', - 'parent_id': '18', - 'position': '5'}, - {'category_id': '19', - 'children': [], - 'is_active': '1', - 'level': '3', - 'name': 'Hoodies', - 'parent_id': '18', - 'position': '19'}, - {'category_id': '24', - 'children': [], - 'is_active': '0', - 'level': '3', - 'name': 'Pants', - 'parent_id': '18', - 'position': '24'}], - 'is_active': '1', - 'level': '2', - 'name': 'Apparel', - 'parent_id': '3', - 'position': '18'}, - {'category_id': '20', - 'children': [], - 'is_active': '0', - 'level': '2', - 'name': 'Household Items', - 'parent_id': '3', - 'position': '20'}], - 'is_active': '1', - 'level': '1', - 'name': 'Root Catalog', - 'parent_id': '1', - 'position': '3'}], - 'is_active': '1', - 'level': '0', - 'name': 'Root', - 'parent_id': '0', - 'position': '1'}, - ('ol_catalog_product.info', (16, None, None, 'id')): {'activation_information': 'Conditional $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for either activating a new, non-substitute line of service or renewing an existing line of service with AT&T and your agreement that for the 181-day period following such activation or renewal you will: (1) pay your balance due to AT&T each month and otherwise maintain your account in good standing; (2) not disconnect this AT&T line of service; (3) not transfer this equipment to another AT&T line of service; (4) not change your AT&T service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped; (5) not use this line of service to replace an existing account with AT&T. If these conditions are not met, you hereby authorize Magento to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '24', - 'cost': '20.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 13:03:05', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'The Nokia 2610 is an easy to use device that combines multiple messaging options including email, instant messaging, and more. You can even download MP3 ringtones, graphics, and games straight to the phone, or surf the Internet with Cingular\'s MEdia Net service. It\'s the perfect complement to Cingular service for those even remotely interested in mobile Web capabilities in an affordable handset.

\r\n\r\nDesign
\r\nCompact and stylish, the 2610 features a candybar design sporting a bright 128 x 128 pixel display capable of displaying over 65,000 colors. Most of the phone\'s features and on-screen menus are controlled by a center toggle on the control pad. A standard hands-free headphone jack is provided, as are volume control keys, and there\'s even a "Go-To" button that can be assigned by the user for quick access to favorite applications. Lastly, the included speakerphone allows you to talk handsfree, and because the phone sports an internal antenna, there\'s nothing to snag or break off.\r\n\r\n', - 'dimension': '4.1 x 1.7 x 0.7 inches ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
    \r\n
      \r\n
    • Integrated camera with video recorder to capture those special moments
    • \r\n
    • Enriched data connections for complete mobile access via Email, MMS, and MEdia Net
    • \r\n
    • Personalize with downloadable MP3 and polyphonic Ring tones, Games, and Graphics
    • \r\n
    • Use AIM, Yahoo! and MSN Messenger to stay in touch on the go
    • \r\n
    • Mobile Internet browser and email
    • \r\n
    ', - 'is_recurring': None, - 'manufacturer': '20', - 'meta_description': 'Offering advanced media and calling features without breaking the bank, The Nokia 2610 is an easy to use', - 'meta_keyword': 'Nokia 2610, cell, phone, ', - 'meta_title': 'Nokia 2610', - 'minimal_price': '149.9900', - 'model': '2610', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Nokia 2610 Phone', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '149.9900', - 'product_id': '16', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'The words "entry level" no longer mean "low-end," especially when it comes to the Nokia 2610. Offering advanced media and calling features without breaking the bank', - 'sku': 'n2610', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:50:04', - 'url_key': 'nokia-2610-phone', - 'url_path': 'nokia-2610-phone.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '3.2000'}, - ('ol_catalog_product.info', (16, u'2', None, 'id')): {'activation_information': 'Conditional $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for either activating a new, non-substitute line of service or renewing an existing line of service with AT&T and your agreement that for the 181-day period following such activation or renewal you will: (1) pay your balance due to AT&T each month and otherwise maintain your account in good standing; (2) not disconnect this AT&T line of service; (3) not transfer this equipment to another AT&T line of service; (4) not change your AT&T service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped; (5) not use this line of service to replace an existing account with AT&T. If these conditions are not met, you hereby authorize Magento to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '24', - 'cost': '20.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 13:03:05', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'The Nokia 2610 is an easy to use device that combines multiple messaging options including email, instant messaging, and more. You can even download MP3 ringtones, graphics, and games straight to the phone, or surf the Internet with Cingular\'s MEdia Net service. It\'s the perfect complement to Cingular service for those even remotely interested in mobile Web capabilities in an affordable handset.

    \r\n\r\nDesign
    \r\nCompact and stylish, the 2610 features a candybar design sporting a bright 128 x 128 pixel display capable of displaying over 65,000 colors. Most of the phone\'s features and on-screen menus are controlled by a center toggle on the control pad. A standard hands-free headphone jack is provided, as are volume control keys, and there\'s even a "Go-To" button that can be assigned by the user for quick access to favorite applications. Lastly, the included speakerphone allows you to talk handsfree, and because the phone sports an internal antenna, there\'s nothing to snag or break off.\r\n\r\n', - 'dimension': '4.1 x 1.7 x 0.7 inches ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
      \r\n
        \r\n
      • Integrated camera with video recorder to capture those special moments
      • \r\n
      • Enriched data connections for complete mobile access via Email, MMS, and MEdia Net
      • \r\n
      • Personalize with downloadable MP3 and polyphonic Ring tones, Games, and Graphics
      • \r\n
      • Use AIM, Yahoo! and MSN Messenger to stay in touch on the go
      • \r\n
      • Mobile Internet browser and email
      • \r\n
      ', - 'is_recurring': None, - 'manufacturer': '20', - 'meta_description': 'Offering advanced media and calling features without breaking the bank, The Nokia 2610 is an easy to use', - 'meta_keyword': 'Nokia 2610, cell, phone, ', - 'meta_title': 'Nokia 2610', - 'minimal_price': '149.9900', - 'model': '2610', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Nokia 2610 Phone', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '149.9900', - 'product_id': '16', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'The words "entry level" no longer mean "low-end," especially when it comes to the Nokia 2610. Offering advanced media and calling features without breaking the bank', - 'sku': 'n2610', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:50:04', - 'url_key': 'nokia-2610-phone', - 'url_path': 'nokia-2610-phone.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '3.2000'}, - ('ol_catalog_product.info', (16, u'3', None, 'id')): {'activation_information': 'Conditional $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for either activating a new, non-substitute line of service or renewing an existing line of service with AT&T and your agreement that for the 181-day period following such activation or renewal you will: (1) pay your balance due to AT&T each month and otherwise maintain your account in good standing; (2) not disconnect this AT&T line of service; (3) not transfer this equipment to another AT&T line of service; (4) not change your AT&T service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped; (5) not use this line of service to replace an existing account with AT&T. If these conditions are not met, you hereby authorize Magento to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '24', - 'cost': '20.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 13:03:05', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'The Nokia 2610 is an easy to use device that combines multiple messaging options including email, instant messaging, and more. You can even download MP3 ringtones, graphics, and games straight to the phone, or surf the Internet with Cingular\'s MEdia Net service. It\'s the perfect complement to Cingular service for those even remotely interested in mobile Web capabilities in an affordable handset.

      \r\n\r\nDesign
      \r\nCompact and stylish, the 2610 features a candybar design sporting a bright 128 x 128 pixel display capable of displaying over 65,000 colors. Most of the phone\'s features and on-screen menus are controlled by a center toggle on the control pad. A standard hands-free headphone jack is provided, as are volume control keys, and there\'s even a "Go-To" button that can be assigned by the user for quick access to favorite applications. Lastly, the included speakerphone allows you to talk handsfree, and because the phone sports an internal antenna, there\'s nothing to snag or break off.\r\n\r\n', - 'dimension': '4.1 x 1.7 x 0.7 inches ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
        \r\n
          \r\n
        • Integrated camera with video recorder to capture those special moments
        • \r\n
        • Enriched data connections for complete mobile access via Email, MMS, and MEdia Net
        • \r\n
        • Personalize with downloadable MP3 and polyphonic Ring tones, Games, and Graphics
        • \r\n
        • Use AIM, Yahoo! and MSN Messenger to stay in touch on the go
        • \r\n
        • Mobile Internet browser and email
        • \r\n
        ', - 'is_recurring': None, - 'manufacturer': '20', - 'meta_description': 'Offering advanced media and calling features without breaking the bank, The Nokia 2610 is an easy to use', - 'meta_keyword': 'Nokia 2610, cell, phone, ', - 'meta_title': 'Nokia 2610', - 'minimal_price': '149.9900', - 'model': '2610', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Nokia 2610 Phone', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '149.9900', - 'product_id': '16', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'The words "entry level" no longer mean "low-end," especially when it comes to the Nokia 2610. Offering advanced media and calling features without breaking the bank', - 'sku': 'n2610', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:50:04', - 'url_key': 'nokia-2610-phone', - 'url_path': 'nokia-2610-phone.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '3.2000'}, - ('ol_catalog_product.info', (17, None, None, 'id')): {'activation_information': 'CONDITIONAL $250 Equipment Discount Included: Your price paid includes an Equipment Discount of $250 that has been provided to you in exchange for activating a new, non-substitute line of service with T-Mobile and your agreement that for the 181-day period following such activation you will (1) pay your balance due to T-Mobile each month and otherwise maintain your account in good standing, (2) not disconnect this T-Mobile line of service, (3) not transfer this equipment to another T-Mobile line of service, (4) not change your T-Mobile service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped, (5) not use this line of service to replace an existing account with T-Mobile. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this Equipment Discount without need for further approval.', - 'categories': ['8'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 15:40:26', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': " Like the BlackBerry 7105t, the BlackBerry 8100 Pearl is \r\nThe BlackBerry 8100 Pearl sports a large 240 x 260 screen that supports over 65,000 colors-- plenty of real estate to view your e-mails, Web browser content, messaging sessions, and attachments. The venerable BlackBerry trackwheel has been replaced on this model with an innovative four-way trackball placed below the screen. On the rear of the handheld, you'll find a 1.3-megapixel camera and a self portrait mirror. The handheld's microSD memory card slot is located inside the device, behind the battery. There's also a standard 2.5mm headset jack that can be used with the included headset, as well as a mini-USB port for data connectivity.", - 'dimension': '4.2 x 2 x 0.6 inches ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
          \r\n
            \r\n
          • 1.3 mega pixel camera to capture those special moments
          • \r\n
          • MP3 player lets you listen to your favorite music on the go
          • \r\n
          • Menu and escape keys on the front of the device for easier access
          • \r\n
          • Bluetooth technology lets you experience hands free and wire free features
          • \r\n
          • Package Contents: phone,AC adapter,software CD,headset,USB cable,sim- card,get started poster,reference guide
          • \r\n
          ', - 'is_recurring': None, - 'manufacturer': '21', - 'meta_description': 'BlackBerry 8100 Pearl sports a large 240 x 260 screen that supports over 65,000 colors-- plenty of real estate to view your e-mails, Web browser content, messaging sessions, and attachments.', - 'meta_keyword': 'Blackberry, 8100, pearl, cell, phone', - 'meta_title': 'BlackBerry 8100 Pearl', - 'minimal_price': '349.9900', - 'model': '8100', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'BlackBerry 8100 Pearl', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '349.9900', - 'product_id': '17', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': "The BlackBerry 8100 Pearl is a departure from the form factor of previous BlackBerry devices. This BlackBerry handset is far more phone-like, and RIM's engineers have managed to fit a QWERTY keyboard onto the handset's slim frame.", - 'sku': 'bb8100', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:50:23', - 'url_key': 'blackberry-8100-pearl', - 'url_path': 'blackberry-8100-pearl.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '15.2000'}, - ('ol_catalog_product.info', (17, u'2', None, 'id')): {'activation_information': 'CONDITIONAL $250 Equipment Discount Included: Your price paid includes an Equipment Discount of $250 that has been provided to you in exchange for activating a new, non-substitute line of service with T-Mobile and your agreement that for the 181-day period following such activation you will (1) pay your balance due to T-Mobile each month and otherwise maintain your account in good standing, (2) not disconnect this T-Mobile line of service, (3) not transfer this equipment to another T-Mobile line of service, (4) not change your T-Mobile service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped, (5) not use this line of service to replace an existing account with T-Mobile. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this Equipment Discount without need for further approval.', - 'categories': ['8'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 15:40:26', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': " Like the BlackBerry 7105t, the BlackBerry 8100 Pearl is \r\nThe BlackBerry 8100 Pearl sports a large 240 x 260 screen that supports over 65,000 colors-- plenty of real estate to view your e-mails, Web browser content, messaging sessions, and attachments. The venerable BlackBerry trackwheel has been replaced on this model with an innovative four-way trackball placed below the screen. On the rear of the handheld, you'll find a 1.3-megapixel camera and a self portrait mirror. The handheld's microSD memory card slot is located inside the device, behind the battery. There's also a standard 2.5mm headset jack that can be used with the included headset, as well as a mini-USB port for data connectivity.", - 'dimension': '4.2 x 2 x 0.6 inches ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
            \r\n
              \r\n
            • 1.3 mega pixel camera to capture those special moments
            • \r\n
            • MP3 player lets you listen to your favorite music on the go
            • \r\n
            • Menu and escape keys on the front of the device for easier access
            • \r\n
            • Bluetooth technology lets you experience hands free and wire free features
            • \r\n
            • Package Contents: phone,AC adapter,software CD,headset,USB cable,sim- card,get started poster,reference guide
            • \r\n
            ', - 'is_recurring': None, - 'manufacturer': '21', - 'meta_description': 'BlackBerry 8100 Pearl sports a large 240 x 260 screen that supports over 65,000 colors-- plenty of real estate to view your e-mails, Web browser content, messaging sessions, and attachments.', - 'meta_keyword': 'Blackberry, 8100, pearl, cell, phone', - 'meta_title': 'BlackBerry 8100 Pearl', - 'minimal_price': '349.9900', - 'model': '8100', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'BlackBerry 8100 Pearl', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '349.9900', - 'product_id': '17', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': "The BlackBerry 8100 Pearl is a departure from the form factor of previous BlackBerry devices. This BlackBerry handset is far more phone-like, and RIM's engineers have managed to fit a QWERTY keyboard onto the handset's slim frame.", - 'sku': 'bb8100', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:50:23', - 'url_key': 'blackberry-8100-pearl', - 'url_path': 'blackberry-8100-pearl.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '15.2000'}, - ('ol_catalog_product.info', (17, u'3', None, 'id')): {'activation_information': 'CONDITIONAL $250 Equipment Discount Included: Your price paid includes an Equipment Discount of $250 that has been provided to you in exchange for activating a new, non-substitute line of service with T-Mobile and your agreement that for the 181-day period following such activation you will (1) pay your balance due to T-Mobile each month and otherwise maintain your account in good standing, (2) not disconnect this T-Mobile line of service, (3) not transfer this equipment to another T-Mobile line of service, (4) not change your T-Mobile service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped, (5) not use this line of service to replace an existing account with T-Mobile. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this Equipment Discount without need for further approval.', - 'categories': ['8'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 15:40:26', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': " Like the BlackBerry 7105t, the BlackBerry 8100 Pearl is \r\nThe BlackBerry 8100 Pearl sports a large 240 x 260 screen that supports over 65,000 colors-- plenty of real estate to view your e-mails, Web browser content, messaging sessions, and attachments. The venerable BlackBerry trackwheel has been replaced on this model with an innovative four-way trackball placed below the screen. On the rear of the handheld, you'll find a 1.3-megapixel camera and a self portrait mirror. The handheld's microSD memory card slot is located inside the device, behind the battery. There's also a standard 2.5mm headset jack that can be used with the included headset, as well as a mini-USB port for data connectivity.", - 'dimension': '4.2 x 2 x 0.6 inches ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
              \r\n
                \r\n
              • 1.3 mega pixel camera to capture those special moments
              • \r\n
              • MP3 player lets you listen to your favorite music on the go
              • \r\n
              • Menu and escape keys on the front of the device for easier access
              • \r\n
              • Bluetooth technology lets you experience hands free and wire free features
              • \r\n
              • Package Contents: phone,AC adapter,software CD,headset,USB cable,sim- card,get started poster,reference guide
              • \r\n
              ', - 'is_recurring': None, - 'manufacturer': '21', - 'meta_description': 'BlackBerry 8100 Pearl sports a large 240 x 260 screen that supports over 65,000 colors-- plenty of real estate to view your e-mails, Web browser content, messaging sessions, and attachments.', - 'meta_keyword': 'Blackberry, 8100, pearl, cell, phone', - 'meta_title': 'BlackBerry 8100 Pearl', - 'minimal_price': '349.9900', - 'model': '8100', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'BlackBerry 8100 Pearl', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '349.9900', - 'product_id': '17', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': "The BlackBerry 8100 Pearl is a departure from the form factor of previous BlackBerry devices. This BlackBerry handset is far more phone-like, and RIM's engineers have managed to fit a QWERTY keyboard onto the handset's slim frame.", - 'sku': 'bb8100', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:50:23', - 'url_key': 'blackberry-8100-pearl', - 'url_path': 'blackberry-8100-pearl.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '15.2000'}, - ('ol_catalog_product.info', (18, None, None, 'id')): {'activation_information': 'Conditional $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for either activating a new, non-substitute line of service or renewing an existing line of service with AT&T and your agreement that for the 181-day period following such activation or renewal you will: (1) pay your balance due to AT&T each month and otherwise maintain your account in good standing; (2) not disconnect this AT&T line of service; (3) not transfer this equipment to another AT&T line of service; (4) not change your AT&T service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped; (5) not use this line of service to replace an existing account with AT&T. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 15:47:44', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The W810i's screen sports 176 x 220 pixel resolution with support for 262,000 colors. Quick access buttons below the screen make it easy to control the phone's Walkman music features, while a five-way center button controls most of the phone's menus and features.", - 'dimension': ' 3.5 x 1.8 x 1 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': u'
                \r\n
                  \r\n \r\n
                • Disc2Phone\u2122 music copying software is supplied in the W810 kit and it\u2019s easy to copy songs from your favorite CDs, and PC music folders
                • \r\n
                • The built-in W810 2 megapixel digital camera with autofus takes excellent photos and when you need to catch some action, W810 has video too
                • \r\n
                • Sharing images and other phone content is easy. Use Bluetooth\u2122, or Multimedia messaging when you want to send images and video
                • \r\n
                • Wherever you are, you have high speed access to the internet with EDGE technology
                • \r\n
                • A full-function email client in your W810 gives you access to your inbox wherever you go
                • \r\n
                ', - 'is_recurring': None, - 'manufacturer': '2', - 'meta_description': 'The W810i follows a long tradition of beautifully designed and crafted phones from Sony Ericsson. The same candy-bar style that graced the W800 is here, as is the horizontally-oriented camera unit on the back of the phone, allowing you to hold the phone j', - 'meta_keyword': 'Sony, Ericsson ,W810i, cell, phone', - 'meta_title': 'Sony Ericsson W810i', - 'minimal_price': '399.9900', - 'model': 'W810i', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Sony Ericsson W810i', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '18', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'The W810i follows a long tradition of beautifully designed and crafted phones from Sony Ericsson. The same candy-bar style that graced the W800 is here.', - 'sku': 'sw810i', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:50:56', - 'url_key': 'sony-ericsson-w810i', - 'url_path': 'sony-ericsson-w810i.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '13.6000'}, - ('ol_catalog_product.info', (18, u'2', None, 'id')): {'activation_information': 'Conditional $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for either activating a new, non-substitute line of service or renewing an existing line of service with AT&T and your agreement that for the 181-day period following such activation or renewal you will: (1) pay your balance due to AT&T each month and otherwise maintain your account in good standing; (2) not disconnect this AT&T line of service; (3) not transfer this equipment to another AT&T line of service; (4) not change your AT&T service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped; (5) not use this line of service to replace an existing account with AT&T. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 15:47:44', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The W810i's screen sports 176 x 220 pixel resolution with support for 262,000 colors. Quick access buttons below the screen make it easy to control the phone's Walkman music features, while a five-way center button controls most of the phone's menus and features.", - 'dimension': ' 3.5 x 1.8 x 1 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': u'
                  \r\n
                    \r\n \r\n
                  • Disc2Phone\u2122 music copying software is supplied in the W810 kit and it\u2019s easy to copy songs from your favorite CDs, and PC music folders
                  • \r\n
                  • The built-in W810 2 megapixel digital camera with autofus takes excellent photos and when you need to catch some action, W810 has video too
                  • \r\n
                  • Sharing images and other phone content is easy. Use Bluetooth\u2122, or Multimedia messaging when you want to send images and video
                  • \r\n
                  • Wherever you are, you have high speed access to the internet with EDGE technology
                  • \r\n
                  • A full-function email client in your W810 gives you access to your inbox wherever you go
                  • \r\n
                  ', - 'is_recurring': None, - 'manufacturer': '2', - 'meta_description': 'The W810i follows a long tradition of beautifully designed and crafted phones from Sony Ericsson. The same candy-bar style that graced the W800 is here, as is the horizontally-oriented camera unit on the back of the phone, allowing you to hold the phone j', - 'meta_keyword': 'Sony, Ericsson ,W810i, cell, phone', - 'meta_title': 'Sony Ericsson W810i', - 'minimal_price': '399.9900', - 'model': 'W810i', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Sony Ericsson W810i', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '18', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'The W810i follows a long tradition of beautifully designed and crafted phones from Sony Ericsson. The same candy-bar style that graced the W800 is here.', - 'sku': 'sw810i', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:50:56', - 'url_key': 'sony-ericsson-w810i', - 'url_path': 'sony-ericsson-w810i.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '13.6000'}, - ('ol_catalog_product.info', (18, u'3', None, 'id')): {'activation_information': 'Conditional $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for either activating a new, non-substitute line of service or renewing an existing line of service with AT&T and your agreement that for the 181-day period following such activation or renewal you will: (1) pay your balance due to AT&T each month and otherwise maintain your account in good standing; (2) not disconnect this AT&T line of service; (3) not transfer this equipment to another AT&T line of service; (4) not change your AT&T service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped; (5) not use this line of service to replace an existing account with AT&T. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 15:47:44', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The W810i's screen sports 176 x 220 pixel resolution with support for 262,000 colors. Quick access buttons below the screen make it easy to control the phone's Walkman music features, while a five-way center button controls most of the phone's menus and features.", - 'dimension': ' 3.5 x 1.8 x 1 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': u'
                    \r\n
                      \r\n \r\n
                    • Disc2Phone\u2122 music copying software is supplied in the W810 kit and it\u2019s easy to copy songs from your favorite CDs, and PC music folders
                    • \r\n
                    • The built-in W810 2 megapixel digital camera with autofus takes excellent photos and when you need to catch some action, W810 has video too
                    • \r\n
                    • Sharing images and other phone content is easy. Use Bluetooth\u2122, or Multimedia messaging when you want to send images and video
                    • \r\n
                    • Wherever you are, you have high speed access to the internet with EDGE technology
                    • \r\n
                    • A full-function email client in your W810 gives you access to your inbox wherever you go
                    • \r\n
                    ', - 'is_recurring': None, - 'manufacturer': '2', - 'meta_description': 'The W810i follows a long tradition of beautifully designed and crafted phones from Sony Ericsson. The same candy-bar style that graced the W800 is here, as is the horizontally-oriented camera unit on the back of the phone, allowing you to hold the phone j', - 'meta_keyword': 'Sony, Ericsson ,W810i, cell, phone', - 'meta_title': 'Sony Ericsson W810i', - 'minimal_price': '399.9900', - 'model': 'W810i', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Sony Ericsson W810i', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '18', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'The W810i follows a long tradition of beautifully designed and crafted phones from Sony Ericsson. The same candy-bar style that graced the W800 is here.', - 'sku': 'sw810i', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:50:56', - 'url_key': 'sony-ericsson-w810i', - 'url_path': 'sony-ericsson-w810i.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '13.6000'}, - ('ol_catalog_product.info', (19, None, None, 'id')): {'activation_information': 'Conditional $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for either activating a new, non-substitute line of service or renewing an existing line of service with AT&T and your agreement that for the 181-day period following such activation or renewal you will: (1) pay your balance due to AT&T each month and otherwise maintain your account in good standing; (2) not disconnect this AT&T line of service; (3) not transfer this equipment to another AT&T line of service; (4) not change your AT&T service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped; (5) not use this line of service to replace an existing account with AT&T. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 15:55:29', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': " The design of the 8525 is clean and uncluttered, with just a few buttons for mail, Internet Explorer, and contextual menus. Meanwhile, call answer and end buttons surround a five-way toggle that allows you to navigate and control the Windows Mobile interface. As mentioned, a full QWERTY keyboard cleverly slides out from underneath the screen. This allows you to hold the device horizontally, and the screen is automatically placed in landscape mode when you're using the keyboard. A side scroll wheel is conveniently tucked away on the side, making navigation when accessing the music player and other various applications a cinch when needed. A mini-SD memory expansion card slot is provided, as is an infrared port and support for a stereo Bluetooth headset. A mini-USB port is also included for wired data transfers and charging.", - 'dimension': '4.4 x 2.4 x 0.9 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                      \r\n
                        \r\n
                      • tri-band UMTS/HSDPA; quad-band GSM/GPRS/EDGE for global use
                      • \r\n
                      • Windows Mobile 5.0 with Messaging & Security Feature Pack
                      • \r\n
                      • sliding QWERTY keyboard with improved keypad design and improved backlight for easier use in low light conditions
                      • \r\n
                      • 128MB ROM / 64MB RAM; ~51MB user available memory
                      • \r\n
                      • 2.0 mega-pixel camera with video capabilities
                      • \r\n
                      ', - 'is_recurring': None, - 'manufacturer': '101', - 'meta_description': 'nder the hood, the 8525 features 128MB of embedded memory and 64MB RAM, running on a 400 MHz Samsung processor. Up front, the 240 x 320 LCD touch-screen supports over 65,000 colors, while the rear of the device houses a 2.0 megapixel camera. The design of', - 'meta_keyword': 'At&t, 8525, cell, phone', - 'meta_title': 'AT&T 8525 PDA Phone', - 'minimal_price': '199.9900', - 'model': '8525 PDA', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'AT&T 8525 PDA', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '19', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'Under the hood, the 8525 features 128MB of embedded memory and 64MB RAM, running on a 400 MHz Samsung processor. Up front, the 240 x 320 LCD touch-screen supports over 65,000 colors, while the rear of the device houses a 2.0 megapixel camera.', - 'sku': '8525PDA', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:51:11', - 'url_key': 'atandt-8525-pda', - 'url_path': 'atandt-8525-pda.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '30.0000'}, - ('ol_catalog_product.info', (19, u'2', None, 'id')): {'activation_information': 'Conditional $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for either activating a new, non-substitute line of service or renewing an existing line of service with AT&T and your agreement that for the 181-day period following such activation or renewal you will: (1) pay your balance due to AT&T each month and otherwise maintain your account in good standing; (2) not disconnect this AT&T line of service; (3) not transfer this equipment to another AT&T line of service; (4) not change your AT&T service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped; (5) not use this line of service to replace an existing account with AT&T. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 15:55:29', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': " The design of the 8525 is clean and uncluttered, with just a few buttons for mail, Internet Explorer, and contextual menus. Meanwhile, call answer and end buttons surround a five-way toggle that allows you to navigate and control the Windows Mobile interface. As mentioned, a full QWERTY keyboard cleverly slides out from underneath the screen. This allows you to hold the device horizontally, and the screen is automatically placed in landscape mode when you're using the keyboard. A side scroll wheel is conveniently tucked away on the side, making navigation when accessing the music player and other various applications a cinch when needed. A mini-SD memory expansion card slot is provided, as is an infrared port and support for a stereo Bluetooth headset. A mini-USB port is also included for wired data transfers and charging.", - 'dimension': '4.4 x 2.4 x 0.9 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                        \r\n
                          \r\n
                        • tri-band UMTS/HSDPA; quad-band GSM/GPRS/EDGE for global use
                        • \r\n
                        • Windows Mobile 5.0 with Messaging & Security Feature Pack
                        • \r\n
                        • sliding QWERTY keyboard with improved keypad design and improved backlight for easier use in low light conditions
                        • \r\n
                        • 128MB ROM / 64MB RAM; ~51MB user available memory
                        • \r\n
                        • 2.0 mega-pixel camera with video capabilities
                        • \r\n
                        ', - 'is_recurring': None, - 'manufacturer': '101', - 'meta_description': 'nder the hood, the 8525 features 128MB of embedded memory and 64MB RAM, running on a 400 MHz Samsung processor. Up front, the 240 x 320 LCD touch-screen supports over 65,000 colors, while the rear of the device houses a 2.0 megapixel camera. The design of', - 'meta_keyword': 'At&t, 8525, cell, phone', - 'meta_title': 'AT&T 8525 PDA Phone', - 'minimal_price': '199.9900', - 'model': '8525 PDA', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'AT&T 8525 PDA', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '19', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'Under the hood, the 8525 features 128MB of embedded memory and 64MB RAM, running on a 400 MHz Samsung processor. Up front, the 240 x 320 LCD touch-screen supports over 65,000 colors, while the rear of the device houses a 2.0 megapixel camera.', - 'sku': '8525PDA', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:51:11', - 'url_key': 'atandt-8525-pda', - 'url_path': 'atandt-8525-pda.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '30.0000'}, - ('ol_catalog_product.info', (19, u'3', None, 'id')): {'activation_information': 'Conditional $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for either activating a new, non-substitute line of service or renewing an existing line of service with AT&T and your agreement that for the 181-day period following such activation or renewal you will: (1) pay your balance due to AT&T each month and otherwise maintain your account in good standing; (2) not disconnect this AT&T line of service; (3) not transfer this equipment to another AT&T line of service; (4) not change your AT&T service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped; (5) not use this line of service to replace an existing account with AT&T. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 15:55:29', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': " The design of the 8525 is clean and uncluttered, with just a few buttons for mail, Internet Explorer, and contextual menus. Meanwhile, call answer and end buttons surround a five-way toggle that allows you to navigate and control the Windows Mobile interface. As mentioned, a full QWERTY keyboard cleverly slides out from underneath the screen. This allows you to hold the device horizontally, and the screen is automatically placed in landscape mode when you're using the keyboard. A side scroll wheel is conveniently tucked away on the side, making navigation when accessing the music player and other various applications a cinch when needed. A mini-SD memory expansion card slot is provided, as is an infrared port and support for a stereo Bluetooth headset. A mini-USB port is also included for wired data transfers and charging.", - 'dimension': '4.4 x 2.4 x 0.9 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                          \r\n
                            \r\n
                          • tri-band UMTS/HSDPA; quad-band GSM/GPRS/EDGE for global use
                          • \r\n
                          • Windows Mobile 5.0 with Messaging & Security Feature Pack
                          • \r\n
                          • sliding QWERTY keyboard with improved keypad design and improved backlight for easier use in low light conditions
                          • \r\n
                          • 128MB ROM / 64MB RAM; ~51MB user available memory
                          • \r\n
                          • 2.0 mega-pixel camera with video capabilities
                          • \r\n
                          ', - 'is_recurring': None, - 'manufacturer': '101', - 'meta_description': 'nder the hood, the 8525 features 128MB of embedded memory and 64MB RAM, running on a 400 MHz Samsung processor. Up front, the 240 x 320 LCD touch-screen supports over 65,000 colors, while the rear of the device houses a 2.0 megapixel camera. The design of', - 'meta_keyword': 'At&t, 8525, cell, phone', - 'meta_title': 'AT&T 8525 PDA Phone', - 'minimal_price': '199.9900', - 'model': '8525 PDA', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'AT&T 8525 PDA', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '19', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'Under the hood, the 8525 features 128MB of embedded memory and 64MB RAM, running on a 400 MHz Samsung processor. Up front, the 240 x 320 LCD touch-screen supports over 65,000 colors, while the rear of the device houses a 2.0 megapixel camera.', - 'sku': '8525PDA', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:51:11', - 'url_key': 'atandt-8525-pda', - 'url_path': 'atandt-8525-pda.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '30.0000'}, - ('ol_catalog_product.info', (20, None, None, 'id')): {'activation_information': 'CONDITIONAL $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for activating a new, non-substitute line of service with Sprint and your agreement that for the 181-day period following such activation you will (1) pay your balance due to Sprint each month and otherwise maintain your account in good standing, (2) not disconnect this Sprint line of service, (3) not transfer this equipment to another Sprint line of service, (4) not change your Sprint service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped, and (5) not use this line of service to replace an existing account with Sprint. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 18:06:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'New services supported by both the MM-A900m include the newly announced Sprint Music StoreSM, which allows users to immediately buy and download complete songs directly to their phone; 30 channels of live and on demand video and audio from Sprint TVSM and On Demand, a personalized resource guide to news, traffic, weather, sports and entertainment. The MM-A900m offers great-looking design with the ability to download a rich selection of content directly to the phone. Features like external music-navigation keys make these phones both functional and attractive. These handsets are sure to be at the top of many wish lists.', - 'dimension': '3.9 x 2 x 0.6 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': u'
                            \r\n
                              \r\n
                            • Bluetooth Wireless Technology: Built-in radio technology allows fast, secure transmission between your phone and accessories without cables or wires. Bluetooth wireless accessories are sold separately.
                            • \r\n
                            • Mass Storage Area: Store pictures, videos, voice memos and music within the internal memory of the phone.
                            • \r\n
                            • Streaming Music Enabled: Stream music to your phone with Music Choice\xae. Select from Pop, Rock, Hip Hop, and R&B plus exclusive video clips, performances, and artist interviews.
                            • \r\n
                            \r\n ', - 'is_recurring': None, - 'manufacturer': '3', - 'meta_description': 'New services supported by both the MM-A900m include the newly announced Sprint Music StoreSM, which allows users to immediately buy and download complete songs directly to their phone', - 'meta_keyword': 'Samsung, MM-A900M, cell, phone', - 'meta_title': 'Samsung MM-A900M Ace Phone', - 'minimal_price': '150.0000', - 'model': 'MM-A900M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Samsung MM-A900M Ace', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '150.0000', - 'product_id': '20', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'The MM-A900m offers great-looking design with the ability to download a rich selection of content directly to the phone. ', - 'sku': 'MM-A900M', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:51:27', - 'url_key': 'samsung-mm-a900m-ace', - 'url_path': 'samsung-mm-a900m-ace.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (20, u'2', None, 'id')): {'activation_information': 'CONDITIONAL $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for activating a new, non-substitute line of service with Sprint and your agreement that for the 181-day period following such activation you will (1) pay your balance due to Sprint each month and otherwise maintain your account in good standing, (2) not disconnect this Sprint line of service, (3) not transfer this equipment to another Sprint line of service, (4) not change your Sprint service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped, and (5) not use this line of service to replace an existing account with Sprint. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 18:06:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'New services supported by both the MM-A900m include the newly announced Sprint Music StoreSM, which allows users to immediately buy and download complete songs directly to their phone; 30 channels of live and on demand video and audio from Sprint TVSM and On Demand, a personalized resource guide to news, traffic, weather, sports and entertainment. The MM-A900m offers great-looking design with the ability to download a rich selection of content directly to the phone. Features like external music-navigation keys make these phones both functional and attractive. These handsets are sure to be at the top of many wish lists.', - 'dimension': '3.9 x 2 x 0.6 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': u'
                              \r\n
                                \r\n
                              • Bluetooth Wireless Technology: Built-in radio technology allows fast, secure transmission between your phone and accessories without cables or wires. Bluetooth wireless accessories are sold separately.
                              • \r\n
                              • Mass Storage Area: Store pictures, videos, voice memos and music within the internal memory of the phone.
                              • \r\n
                              • Streaming Music Enabled: Stream music to your phone with Music Choice\xae. Select from Pop, Rock, Hip Hop, and R&B plus exclusive video clips, performances, and artist interviews.
                              • \r\n
                              \r\n ', - 'is_recurring': None, - 'manufacturer': '3', - 'meta_description': 'New services supported by both the MM-A900m include the newly announced Sprint Music StoreSM, which allows users to immediately buy and download complete songs directly to their phone', - 'meta_keyword': 'Samsung, MM-A900M, cell, phone', - 'meta_title': 'Samsung MM-A900M Ace Phone', - 'minimal_price': '150.0000', - 'model': 'MM-A900M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Samsung MM-A900M Ace', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '150.0000', - 'product_id': '20', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'The MM-A900m offers great-looking design with the ability to download a rich selection of content directly to the phone. ', - 'sku': 'MM-A900M', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:51:27', - 'url_key': 'samsung-mm-a900m-ace', - 'url_path': 'samsung-mm-a900m-ace.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (20, u'3', None, 'id')): {'activation_information': 'CONDITIONAL $250 Equipment Discount Included: Your price paid includes an equipment discount of $250 that has been provided to you in exchange for activating a new, non-substitute line of service with Sprint and your agreement that for the 181-day period following such activation you will (1) pay your balance due to Sprint each month and otherwise maintain your account in good standing, (2) not disconnect this Sprint line of service, (3) not transfer this equipment to another Sprint line of service, (4) not change your Sprint service rate plan to a lower monthly service rate--this includes canceling or removing required PDA, BlackBerry, or smartphone features after your product has shipped, and (5) not use this line of service to replace an existing account with Sprint. If these conditions are not met, you hereby authorize Magento.com to charge your credit card $250 as reimbursement of this equipment discount without need for further approval.', - 'categories': ['8'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-23 18:06:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'New services supported by both the MM-A900m include the newly announced Sprint Music StoreSM, which allows users to immediately buy and download complete songs directly to their phone; 30 channels of live and on demand video and audio from Sprint TVSM and On Demand, a personalized resource guide to news, traffic, weather, sports and entertainment. The MM-A900m offers great-looking design with the ability to download a rich selection of content directly to the phone. Features like external music-navigation keys make these phones both functional and attractive. These handsets are sure to be at the top of many wish lists.', - 'dimension': '3.9 x 2 x 0.6 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': u'
                                \r\n
                                  \r\n
                                • Bluetooth Wireless Technology: Built-in radio technology allows fast, secure transmission between your phone and accessories without cables or wires. Bluetooth wireless accessories are sold separately.
                                • \r\n
                                • Mass Storage Area: Store pictures, videos, voice memos and music within the internal memory of the phone.
                                • \r\n
                                • Streaming Music Enabled: Stream music to your phone with Music Choice\xae. Select from Pop, Rock, Hip Hop, and R&B plus exclusive video clips, performances, and artist interviews.
                                • \r\n
                                \r\n ', - 'is_recurring': None, - 'manufacturer': '3', - 'meta_description': 'New services supported by both the MM-A900m include the newly announced Sprint Music StoreSM, which allows users to immediately buy and download complete songs directly to their phone', - 'meta_keyword': 'Samsung, MM-A900M, cell, phone', - 'meta_title': 'Samsung MM-A900M Ace Phone', - 'minimal_price': '150.0000', - 'model': 'MM-A900M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Samsung MM-A900M Ace', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '150.0000', - 'product_id': '20', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': 'The MM-A900m offers great-looking design with the ability to download a rich selection of content directly to the phone. ', - 'sku': 'MM-A900M', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:51:27', - 'url_key': 'samsung-mm-a900m-ace', - 'url_path': 'samsung-mm-a900m-ace.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (25, None, None, 'id')): {'categories': ['15', - '28'], - 'color': '23', - 'computer_manufacturers': '77', - 'cost': '1299.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:28:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "This, combined with myriad other engineering leaps, boosts performance up to four times higher than the PowerBook G4. With this awesome power, it's a breeze to render complex 3D models, enjoy smooth playback of HD video, or host a four-way video conference.Intel Core Duo is the first chip built using Intel's groundbreaking 65-nanometer process - resulting in transistors so small, you could fit a hundred inside a single human cell. With smaller distances for electrons to travel, and two processors designed to share resources and conserve power, Intel Core Duo achieves higher levels of performance as it uses fewer watts. Which is what makes it possible to design a super-powerful MacBook Pro that's only one inch thin.When Mac technology makes something easy, it's hardly news. So here's more non-news for MacBook Pro owners: software just works. If you see the Universal logo on a new application, that means it will run on Intel- and PowerPC-based Mac computers. For most existing applications, you simply do what you've always done: double-click them. Thanks to the Rosetta technology in Mac OS X, they look and feel just like they did before.", - 'dimension': '19.5 x 7.6 x 19.5 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '100 GB 5400 rpm Serial ATA hard drive', - 'has_options': '1', - 'image_label': None, - 'in_depth': u'
                                  \r\n
                                    \r\n
                                  • 2.0 GHz Intel Core Duo processor with 2 MB shared L2 Cache
                                  • \r\n
                                  • 1 GB (single SODIMM) 667 MHz DDR2 SDRAM (PC2-5300); 100 GB 5400 rpm Serial ATA hard drive; slot-load SuperDrive (DVD\xb1RW/CD-RW)
                                  • \r\n
                                  • One FireWire 400, two USB 2.0 ports, and ExpressCard/34 slot; no FireWire 800 slots
                                  • \r\n
                                  • Built-in 10/100/1000BASE-T (Gigabit); built-in 54 Mbps AirPort Extreme (802.11g); built-in Bluetooth 2.0+EDR
                                  • \r\n
                                  • 15.4-inch TFT widescreen display with 1440 x 900 resolution
                                  • ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '1 GB (single SODIMM) 667 MHz DDR2 SDRAM (PC2-5300)', - 'meta_description': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC (2.0 GHz Intel Core Duo, 1 GB RAM, 100 GB Hard Drive, SuperDrive)', - 'meta_keyword': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC (2.0 GHz Intel Core Duo, 1 GB RAM, 100 GB Hard Drive, SuperDrive) ', - 'meta_title': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC (2.0 GHz Intel Core Duo, 1 GB RAM, 100 GB Hard Drive, SuperDrive)', - 'minimal_price': '2299.9900', - 'model': 'MA464LL/A', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '2299.9900', - 'processor': '2.0 GHz Intel Core Duo processor with 2 MB shared L2 Cache', - 'product_id': '25', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '15.4-inch TFT widescreen display with 1440 x 900 resolution', - 'set': '39', - 'short_description': "You've seen improvements in notebook performance before - but never on this scale. The Intel Core Duo powering MacBook Pro is actually two processors built into a single chip.", - 'sku': 'MA464LL/A', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-28 21:27:34', - 'url_key': 'apple-macbook-pro-ma464ll-a-15-4-notebook-pc-2-0-ghz-intel-core-duo-1-gb-ram-100-gb-hard-drive-superdrive', - 'url_path': 'apple-macbook-pro-ma464ll-a-15-4-notebook-pc-2-0-ghz-intel-core-duo-1-gb-ram-100-gb-hard-drive-superdrive.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.6000'}, - ('ol_catalog_product.info', (25, u'2', None, 'id')): {'categories': ['15', - '28'], - 'color': '23', - 'computer_manufacturers': '77', - 'cost': '1299.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:28:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "This, combined with myriad other engineering leaps, boosts performance up to four times higher than the PowerBook G4. With this awesome power, it's a breeze to render complex 3D models, enjoy smooth playback of HD video, or host a four-way video conference.Intel Core Duo is the first chip built using Intel's groundbreaking 65-nanometer process - resulting in transistors so small, you could fit a hundred inside a single human cell. With smaller distances for electrons to travel, and two processors designed to share resources and conserve power, Intel Core Duo achieves higher levels of performance as it uses fewer watts. Which is what makes it possible to design a super-powerful MacBook Pro that's only one inch thin.When Mac technology makes something easy, it's hardly news. So here's more non-news for MacBook Pro owners: software just works. If you see the Universal logo on a new application, that means it will run on Intel- and PowerPC-based Mac computers. For most existing applications, you simply do what you've always done: double-click them. Thanks to the Rosetta technology in Mac OS X, they look and feel just like they did before.", - 'dimension': '19.5 x 7.6 x 19.5 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '100 GB 5400 rpm Serial ATA hard drive', - 'has_options': '1', - 'image_label': None, - 'in_depth': u'
                                      \r\n
                                        \r\n
                                      • 2.0 GHz Intel Core Duo processor with 2 MB shared L2 Cache
                                      • \r\n
                                      • 1 GB (single SODIMM) 667 MHz DDR2 SDRAM (PC2-5300); 100 GB 5400 rpm Serial ATA hard drive; slot-load SuperDrive (DVD\xb1RW/CD-RW)
                                      • \r\n
                                      • One FireWire 400, two USB 2.0 ports, and ExpressCard/34 slot; no FireWire 800 slots
                                      • \r\n
                                      • Built-in 10/100/1000BASE-T (Gigabit); built-in 54 Mbps AirPort Extreme (802.11g); built-in Bluetooth 2.0+EDR
                                      • \r\n
                                      • 15.4-inch TFT widescreen display with 1440 x 900 resolution
                                      • ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '1 GB (single SODIMM) 667 MHz DDR2 SDRAM (PC2-5300)', - 'meta_description': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC (2.0 GHz Intel Core Duo, 1 GB RAM, 100 GB Hard Drive, SuperDrive)', - 'meta_keyword': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC (2.0 GHz Intel Core Duo, 1 GB RAM, 100 GB Hard Drive, SuperDrive) ', - 'meta_title': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC (2.0 GHz Intel Core Duo, 1 GB RAM, 100 GB Hard Drive, SuperDrive)', - 'minimal_price': '2299.9900', - 'model': 'MA464LL/A', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '2299.9900', - 'processor': '2.0 GHz Intel Core Duo processor with 2 MB shared L2 Cache', - 'product_id': '25', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '15.4-inch TFT widescreen display with 1440 x 900 resolution', - 'set': '39', - 'short_description': "You've seen improvements in notebook performance before - but never on this scale. The Intel Core Duo powering MacBook Pro is actually two processors built into a single chip.", - 'sku': 'MA464LL/A', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-28 21:27:34', - 'url_key': 'apple-macbook-pro-ma464ll-a-15-4-notebook-pc-2-0-ghz-intel-core-duo-1-gb-ram-100-gb-hard-drive-superdrive', - 'url_path': 'apple-macbook-pro-ma464ll-a-15-4-notebook-pc-2-0-ghz-intel-core-duo-1-gb-ram-100-gb-hard-drive-superdrive.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.6000'}, - ('ol_catalog_product.info', (25, u'3', None, 'id')): {'categories': ['15', - '28'], - 'color': '23', - 'computer_manufacturers': '77', - 'cost': '1299.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:28:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "This, combined with myriad other engineering leaps, boosts performance up to four times higher than the PowerBook G4. With this awesome power, it's a breeze to render complex 3D models, enjoy smooth playback of HD video, or host a four-way video conference.Intel Core Duo is the first chip built using Intel's groundbreaking 65-nanometer process - resulting in transistors so small, you could fit a hundred inside a single human cell. With smaller distances for electrons to travel, and two processors designed to share resources and conserve power, Intel Core Duo achieves higher levels of performance as it uses fewer watts. Which is what makes it possible to design a super-powerful MacBook Pro that's only one inch thin.When Mac technology makes something easy, it's hardly news. So here's more non-news for MacBook Pro owners: software just works. If you see the Universal logo on a new application, that means it will run on Intel- and PowerPC-based Mac computers. For most existing applications, you simply do what you've always done: double-click them. Thanks to the Rosetta technology in Mac OS X, they look and feel just like they did before.", - 'dimension': '19.5 x 7.6 x 19.5 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '100 GB 5400 rpm Serial ATA hard drive', - 'has_options': '1', - 'image_label': None, - 'in_depth': u'
                                          \r\n
                                            \r\n
                                          • 2.0 GHz Intel Core Duo processor with 2 MB shared L2 Cache
                                          • \r\n
                                          • 1 GB (single SODIMM) 667 MHz DDR2 SDRAM (PC2-5300); 100 GB 5400 rpm Serial ATA hard drive; slot-load SuperDrive (DVD\xb1RW/CD-RW)
                                          • \r\n
                                          • One FireWire 400, two USB 2.0 ports, and ExpressCard/34 slot; no FireWire 800 slots
                                          • \r\n
                                          • Built-in 10/100/1000BASE-T (Gigabit); built-in 54 Mbps AirPort Extreme (802.11g); built-in Bluetooth 2.0+EDR
                                          • \r\n
                                          • 15.4-inch TFT widescreen display with 1440 x 900 resolution
                                          • ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '1 GB (single SODIMM) 667 MHz DDR2 SDRAM (PC2-5300)', - 'meta_description': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC (2.0 GHz Intel Core Duo, 1 GB RAM, 100 GB Hard Drive, SuperDrive)', - 'meta_keyword': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC (2.0 GHz Intel Core Duo, 1 GB RAM, 100 GB Hard Drive, SuperDrive) ', - 'meta_title': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC (2.0 GHz Intel Core Duo, 1 GB RAM, 100 GB Hard Drive, SuperDrive)', - 'minimal_price': '2299.9900', - 'model': 'MA464LL/A', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '2299.9900', - 'processor': '2.0 GHz Intel Core Duo processor with 2 MB shared L2 Cache', - 'product_id': '25', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '15.4-inch TFT widescreen display with 1440 x 900 resolution', - 'set': '39', - 'short_description': "You've seen improvements in notebook performance before - but never on this scale. The Intel Core Duo powering MacBook Pro is actually two processors built into a single chip.", - 'sku': 'MA464LL/A', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-28 21:27:34', - 'url_key': 'apple-macbook-pro-ma464ll-a-15-4-notebook-pc-2-0-ghz-intel-core-duo-1-gb-ram-100-gb-hard-drive-superdrive', - 'url_path': 'apple-macbook-pro-ma464ll-a-15-4-notebook-pc-2-0-ghz-intel-core-duo-1-gb-ram-100-gb-hard-drive-superdrive.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.6000'}, - ('ol_catalog_product.info', (26, None, None, 'id')): {'categories': ['15', - '28'], - 'color': '24', - 'computer_manufacturers': '79', - 'cost': '999.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:35:16', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': ' Acer has flawlessly designed the Ferrari 3200, instilling it with exceptional performance, brilliant graphics, and lightning-fast connectivity. This exclusive edition is another striking symbol of cooperation between Acer and Ferrari -- two progressive companies with proud heritages built on passion, innovation, power and success.', - 'dimension': '', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '80 gig Western Digital', - 'has_options': '1', - 'image_label': None, - 'in_depth': '
                                              \r\n
                                                \r\n
                                              • Mobile AMD Athlon 64 2800+
                                              • \r\n
                                              • 1MB L2 Cache
                                              • \r\n
                                              • 512MB of PC2700 DDR333 SDRAM
                                              • \r\n
                                              • 2 RAM Slots (0 open - upgrading requires chip removal)
                                              • \r\n
                                              • RAM is upgradeable to 2GB
                                              • \r\n
                                              ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '512MB of PC2700 DDR333 SDRAM', - 'meta_description': 'Acer Ferrari 3200 Notebook Computer PC', - 'meta_keyword': 'Acer Ferrari 3200 Notebook Computer PC ', - 'meta_title': 'Acer Ferrari 3200 Notebook Computer PC', - 'minimal_price': '1799.9900', - 'model': 'LX.FR206.001', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Acer Ferrari 3200 Notebook Computer PC', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '1799.9900', - 'processor': 'Mobile AMD Athlon 64 2800+', - 'product_id': '26', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '15-inch, 200-nit, high-brightness TFT LCD screen ', - 'set': '39', - 'short_description': 'This exclusive edition is another striking symbol of cooperation between Acer and Ferrari -- two progressive companies with proud heritages built on passion, innovation, power and success', - 'sku': 'LX.FR206.001', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-05 07:14:52', - 'url_key': 'acer-ferrari-3200-notebook-computer-pc', - 'url_path': 'acer-ferrari-3200-notebook-computer-pc.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '11.4000'}, - ('ol_catalog_product.info', (26, u'2', None, 'id')): {'categories': ['15', - '28'], - 'color': '24', - 'computer_manufacturers': '79', - 'cost': '999.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:35:16', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': ' Acer has flawlessly designed the Ferrari 3200, instilling it with exceptional performance, brilliant graphics, and lightning-fast connectivity. This exclusive edition is another striking symbol of cooperation between Acer and Ferrari -- two progressive companies with proud heritages built on passion, innovation, power and success.', - 'dimension': '', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '80 gig Western Digital', - 'has_options': '1', - 'image_label': None, - 'in_depth': '
                                                \r\n
                                                  \r\n
                                                • Mobile AMD Athlon 64 2800+
                                                • \r\n
                                                • 1MB L2 Cache
                                                • \r\n
                                                • 512MB of PC2700 DDR333 SDRAM
                                                • \r\n
                                                • 2 RAM Slots (0 open - upgrading requires chip removal)
                                                • \r\n
                                                • RAM is upgradeable to 2GB
                                                • \r\n
                                                ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '512MB of PC2700 DDR333 SDRAM', - 'meta_description': 'Acer Ferrari 3200 Notebook Computer PC', - 'meta_keyword': 'Acer Ferrari 3200 Notebook Computer PC ', - 'meta_title': 'Acer Ferrari 3200 Notebook Computer PC', - 'minimal_price': '1799.9900', - 'model': 'LX.FR206.001', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Acer Ferrari 3200 Notebook Computer PC', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '1799.9900', - 'processor': 'Mobile AMD Athlon 64 2800+', - 'product_id': '26', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '15-inch, 200-nit, high-brightness TFT LCD screen ', - 'set': '39', - 'short_description': 'This exclusive edition is another striking symbol of cooperation between Acer and Ferrari -- two progressive companies with proud heritages built on passion, innovation, power and success', - 'sku': 'LX.FR206.001', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-05 07:14:52', - 'url_key': 'acer-ferrari-3200-notebook-computer-pc', - 'url_path': 'acer-ferrari-3200-notebook-computer-pc.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '11.4000'}, - ('ol_catalog_product.info', (26, u'3', None, 'id')): {'categories': ['15', - '28'], - 'color': '24', - 'computer_manufacturers': '79', - 'cost': '999.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:35:16', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': ' Acer has flawlessly designed the Ferrari 3200, instilling it with exceptional performance, brilliant graphics, and lightning-fast connectivity. This exclusive edition is another striking symbol of cooperation between Acer and Ferrari -- two progressive companies with proud heritages built on passion, innovation, power and success.', - 'dimension': '', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '80 gig Western Digital', - 'has_options': '1', - 'image_label': None, - 'in_depth': '
                                                  \r\n
                                                    \r\n
                                                  • Mobile AMD Athlon 64 2800+
                                                  • \r\n
                                                  • 1MB L2 Cache
                                                  • \r\n
                                                  • 512MB of PC2700 DDR333 SDRAM
                                                  • \r\n
                                                  • 2 RAM Slots (0 open - upgrading requires chip removal)
                                                  • \r\n
                                                  • RAM is upgradeable to 2GB
                                                  • \r\n
                                                  ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '512MB of PC2700 DDR333 SDRAM', - 'meta_description': 'Acer Ferrari 3200 Notebook Computer PC', - 'meta_keyword': 'Acer Ferrari 3200 Notebook Computer PC ', - 'meta_title': 'Acer Ferrari 3200 Notebook Computer PC', - 'minimal_price': '1799.9900', - 'model': 'LX.FR206.001', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Acer Ferrari 3200 Notebook Computer PC', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '1799.9900', - 'processor': 'Mobile AMD Athlon 64 2800+', - 'product_id': '26', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '15-inch, 200-nit, high-brightness TFT LCD screen ', - 'set': '39', - 'short_description': 'This exclusive edition is another striking symbol of cooperation between Acer and Ferrari -- two progressive companies with proud heritages built on passion, innovation, power and success', - 'sku': 'LX.FR206.001', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-05 07:14:52', - 'url_key': 'acer-ferrari-3200-notebook-computer-pc', - 'url_path': 'acer-ferrari-3200-notebook-computer-pc.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '11.4000'}, - ('ol_catalog_product.info', (27, None, None, 'id')): {'categories': [], - 'color': '24', - 'computer_manufacturers': '76', - 'cost': '899.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:41:56', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': ' Weighing in at just an amazing 2.84 pounds and offering a sleek, durable carbon-fiber case in charcoal black. And with 4 to 10 hours of standard battery life, it has the stamina to power you through your most demanding applications. With the integrated wireless WAN, you can access the national Sprint Mobile Broadband service to extend your wireless coverage beyond LAN access networks and hotspots, giving you the freedom to go farther, do more, and stay connected.\r\n\r\n', - 'dimension': '10.7 x 1.23 x 7.7 inches (WxHxD)', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '100 GB Hard Drive', - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                    \r\n
                                                      \r\n
                                                    • Processor: The Ultra Low Voltage Intel Core Solo U1500 processor offers a 1.33 GHz speed paired with a fast 533 MHz front-side bus and large 2 MB L2 cache. (An L2, or secondary, cache temporarily stores data; and a larger L2 cache can help speed up your system\'s performance. The FSB carries data between the CPU and RAM, and a faster front-side bus will deliver better overall performance.) The Core Solo processor delivers enhanced performance for today\'s demanding applications such as CAD tools, 3-D and 2-D modeling, video editing, digital music, digital photography and gaming. And Intel\'s Smart Cache technology enables smarter, more efficient cache and bus design for enhanced performance, responsiveness and power savings.
                                                    • \r\n
                                                    \r\n\r\n ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '2 GB RAM', - 'meta_description': u'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC (Intel Core Solo Processor U1500, 2 GB RAM, 100 GB Hard Drive, DVD\xb1RW Drive, Vista Business) Charcoal Black', - 'meta_keyword': 'Sony, VAIO, VGN-TXN27N/B , Notebook, PC, Intel, 2 GB RAM, Laptop', - 'meta_title': u'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC (Intel Core Solo Processor U1500, 2 GB RAM, 100 GB Hard Drive, DVD\xb1RW Drive, Vista Business) Charcoal Black', - 'minimal_price': '2699.9900', - 'model': 'VGN-TXN27N/B', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '2699.9900', - 'processor': 'Intel Core Solo Processor U1500', - 'product_id': '27', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '9 inches', - 'set': '39', - 'short_description': "Take a load off your shoulders when you're racing for your plane with the sleekly designed and ultra-portable Sony Vaio VGN-TXN27N/B notebook PC.", - 'sku': 'VGN-TXN27N/B', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-06 05:12:24', - 'url_key': 'sony-vaio-vgn-txn27n-b-11-1-notebook-pc', - 'url_path': 'sony-vaio-vgn-txn27n-b-11-1-notebook-pc.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '2.8000'}, - ('ol_catalog_product.info', (27, u'2', None, 'id')): {'categories': [], - 'color': '24', - 'computer_manufacturers': '76', - 'cost': '899.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:41:56', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': ' Weighing in at just an amazing 2.84 pounds and offering a sleek, durable carbon-fiber case in charcoal black. And with 4 to 10 hours of standard battery life, it has the stamina to power you through your most demanding applications. With the integrated wireless WAN, you can access the national Sprint Mobile Broadband service to extend your wireless coverage beyond LAN access networks and hotspots, giving you the freedom to go farther, do more, and stay connected.\r\n\r\n', - 'dimension': '10.7 x 1.23 x 7.7 inches (WxHxD)', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '100 GB Hard Drive', - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                      \r\n
                                                        \r\n
                                                      • Processor: The Ultra Low Voltage Intel Core Solo U1500 processor offers a 1.33 GHz speed paired with a fast 533 MHz front-side bus and large 2 MB L2 cache. (An L2, or secondary, cache temporarily stores data; and a larger L2 cache can help speed up your system\'s performance. The FSB carries data between the CPU and RAM, and a faster front-side bus will deliver better overall performance.) The Core Solo processor delivers enhanced performance for today\'s demanding applications such as CAD tools, 3-D and 2-D modeling, video editing, digital music, digital photography and gaming. And Intel\'s Smart Cache technology enables smarter, more efficient cache and bus design for enhanced performance, responsiveness and power savings.
                                                      • \r\n
                                                      \r\n\r\n ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '2 GB RAM', - 'meta_description': u'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC (Intel Core Solo Processor U1500, 2 GB RAM, 100 GB Hard Drive, DVD\xb1RW Drive, Vista Business) Charcoal Black', - 'meta_keyword': 'Sony, VAIO, VGN-TXN27N/B , Notebook, PC, Intel, 2 GB RAM, Laptop', - 'meta_title': u'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC (Intel Core Solo Processor U1500, 2 GB RAM, 100 GB Hard Drive, DVD\xb1RW Drive, Vista Business) Charcoal Black', - 'minimal_price': '2699.9900', - 'model': 'VGN-TXN27N/B', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '2699.9900', - 'processor': 'Intel Core Solo Processor U1500', - 'product_id': '27', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '9 inches', - 'set': '39', - 'short_description': "Take a load off your shoulders when you're racing for your plane with the sleekly designed and ultra-portable Sony Vaio VGN-TXN27N/B notebook PC.", - 'sku': 'VGN-TXN27N/B', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-06 05:12:24', - 'url_key': 'sony-vaio-vgn-txn27n-b-11-1-notebook-pc', - 'url_path': 'sony-vaio-vgn-txn27n-b-11-1-notebook-pc.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '2.8000'}, - ('ol_catalog_product.info', (27, u'3', None, 'id')): {'categories': [], - 'color': '24', - 'computer_manufacturers': '76', - 'cost': '899.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:41:56', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': ' Weighing in at just an amazing 2.84 pounds and offering a sleek, durable carbon-fiber case in charcoal black. And with 4 to 10 hours of standard battery life, it has the stamina to power you through your most demanding applications. With the integrated wireless WAN, you can access the national Sprint Mobile Broadband service to extend your wireless coverage beyond LAN access networks and hotspots, giving you the freedom to go farther, do more, and stay connected.\r\n\r\n', - 'dimension': '10.7 x 1.23 x 7.7 inches (WxHxD)', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '100 GB Hard Drive', - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                        \r\n
                                                          \r\n
                                                        • Processor: The Ultra Low Voltage Intel Core Solo U1500 processor offers a 1.33 GHz speed paired with a fast 533 MHz front-side bus and large 2 MB L2 cache. (An L2, or secondary, cache temporarily stores data; and a larger L2 cache can help speed up your system\'s performance. The FSB carries data between the CPU and RAM, and a faster front-side bus will deliver better overall performance.) The Core Solo processor delivers enhanced performance for today\'s demanding applications such as CAD tools, 3-D and 2-D modeling, video editing, digital music, digital photography and gaming. And Intel\'s Smart Cache technology enables smarter, more efficient cache and bus design for enhanced performance, responsiveness and power savings.
                                                        • \r\n
                                                        \r\n\r\n ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '2 GB RAM', - 'meta_description': u'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC (Intel Core Solo Processor U1500, 2 GB RAM, 100 GB Hard Drive, DVD\xb1RW Drive, Vista Business) Charcoal Black', - 'meta_keyword': 'Sony, VAIO, VGN-TXN27N/B , Notebook, PC, Intel, 2 GB RAM, Laptop', - 'meta_title': u'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC (Intel Core Solo Processor U1500, 2 GB RAM, 100 GB Hard Drive, DVD\xb1RW Drive, Vista Business) Charcoal Black', - 'minimal_price': '2699.9900', - 'model': 'VGN-TXN27N/B', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '2699.9900', - 'processor': 'Intel Core Solo Processor U1500', - 'product_id': '27', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '9 inches', - 'set': '39', - 'short_description': "Take a load off your shoulders when you're racing for your plane with the sleekly designed and ultra-portable Sony Vaio VGN-TXN27N/B notebook PC.", - 'sku': 'VGN-TXN27N/B', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-06 05:12:24', - 'url_key': 'sony-vaio-vgn-txn27n-b-11-1-notebook-pc', - 'url_path': 'sony-vaio-vgn-txn27n-b-11-1-notebook-pc.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '2.8000'}, - ('ol_catalog_product.info', (28, None, None, 'id')): {'categories': ['15', - '28'], - 'color': '24', - 'computer_manufacturers': '74', - 'cost': '899.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:47:57', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Easily mobile at just 6 pounds, the Toshiba Satellite A135-S4527 makes it easy to get your work done with a large, bright 15.4-inch widescreen LCD. The XGA-resolution screen (1280 x 800) permits side-by-side viewing of documents for increased productivity. It's also great for using as a media center, with Toshiba's unique Express Media Player enabling you to bypass the system and access CDs and DVDs with a touch of button. This affordable notebook PC is powered by Intel's 1.73 GHz Core Duo T2080 processor, which provides an optimized, multithreaded architecture for improved gaming and multitasking performance and efficient power consumption. It also offers a 120 GB hard drive, 1 GB of installed RAM (2 GB maximum), dual-layer/multi-format DVD drive that also burns CDs, integrated 54g wireless connectivity, and Intel GMA 950 video card with up to 256 MB of shared video RAM.\r\n\r\n", - 'dimension': '17 x 7 x 13 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '60 GB hard drive', - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                          \r\n
                                                            \r\n
                                                          • Processor: The Intel Core Duo T2080 processor is built with the Mobile Intel 945PM Express chipset, and it has a 1.73 GHz processor speed, fast 533 MHz front-side bus (FSB), and 1 MB L2 cache. (An L2, or secondary, cache temporarily stores data; and a larger L2 cache can help speed up your system\'s performance. The FSB carries data between the CPU and RAM, and a faster front-side bus will deliver better overall performance.)
                                                          • \r\n
                                                          ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '1 GB RAM', - 'meta_description': 'Toshiba M285-E 14" Convertible Notebook PC (Intel Core Duo Processor T2300E, 1 GB RAM, 60', - 'meta_keyword': 'Toshiba, notebook, laptop, intel, ', - 'meta_title': 'Toshiba Satellite A135-S4527 155.4" Notebook PC (Intel Pentium Dual Core Processor T2080, 1 GB RAM, 120 GB Hard Drive, SuperMulti DVD Drive, Vista Premium)', - 'minimal_price': '1599.9900', - 'model': 'M285-E', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Toshiba M285-E 14"', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '1599.9900', - 'processor': '1.66 GHz Intel Core Duo T2300E processor', - 'product_id': '28', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '14-inch screen ', - 'set': '39', - 'short_description': 'Get the competitive edge with the Gateway M285-E. This widescreen Convertible Notebook functions as both a conventional notebook and a tablet.', - 'sku': 'M285-E', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:51:44', - 'url_key': 'toshiba-satellite-a135-s4527-155-4-notebook-pc-intel-pentium-dual-core-processor-t2080-1-gb-ram-120-gb-hard-drive-supermulti-dvd-drive-vista-premium', - 'url_path': 'toshiba-satellite-a135-s4527-155-4-notebook-pc-intel-pentium-dual-core-processor-t2080-1-gb-ram-120-gb-hard-drive-supermulti-dvd-drive-vista-premium.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.0000'}, - ('ol_catalog_product.info', (28, u'2', None, 'id')): {'categories': ['15', - '28'], - 'color': '24', - 'computer_manufacturers': '74', - 'cost': '899.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:47:57', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Easily mobile at just 6 pounds, the Toshiba Satellite A135-S4527 makes it easy to get your work done with a large, bright 15.4-inch widescreen LCD. The XGA-resolution screen (1280 x 800) permits side-by-side viewing of documents for increased productivity. It's also great for using as a media center, with Toshiba's unique Express Media Player enabling you to bypass the system and access CDs and DVDs with a touch of button. This affordable notebook PC is powered by Intel's 1.73 GHz Core Duo T2080 processor, which provides an optimized, multithreaded architecture for improved gaming and multitasking performance and efficient power consumption. It also offers a 120 GB hard drive, 1 GB of installed RAM (2 GB maximum), dual-layer/multi-format DVD drive that also burns CDs, integrated 54g wireless connectivity, and Intel GMA 950 video card with up to 256 MB of shared video RAM.\r\n\r\n", - 'dimension': '17 x 7 x 13 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '60 GB hard drive', - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                            \r\n
                                                              \r\n
                                                            • Processor: The Intel Core Duo T2080 processor is built with the Mobile Intel 945PM Express chipset, and it has a 1.73 GHz processor speed, fast 533 MHz front-side bus (FSB), and 1 MB L2 cache. (An L2, or secondary, cache temporarily stores data; and a larger L2 cache can help speed up your system\'s performance. The FSB carries data between the CPU and RAM, and a faster front-side bus will deliver better overall performance.)
                                                            • \r\n
                                                            ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '1 GB RAM', - 'meta_description': 'Toshiba M285-E 14" Convertible Notebook PC (Intel Core Duo Processor T2300E, 1 GB RAM, 60', - 'meta_keyword': 'Toshiba, notebook, laptop, intel, ', - 'meta_title': 'Toshiba Satellite A135-S4527 155.4" Notebook PC (Intel Pentium Dual Core Processor T2080, 1 GB RAM, 120 GB Hard Drive, SuperMulti DVD Drive, Vista Premium)', - 'minimal_price': '1599.9900', - 'model': 'M285-E', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Toshiba M285-E 14"', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '1599.9900', - 'processor': '1.66 GHz Intel Core Duo T2300E processor', - 'product_id': '28', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '14-inch screen ', - 'set': '39', - 'short_description': 'Get the competitive edge with the Gateway M285-E. This widescreen Convertible Notebook functions as both a conventional notebook and a tablet.', - 'sku': 'M285-E', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:51:44', - 'url_key': 'toshiba-satellite-a135-s4527-155-4-notebook-pc-intel-pentium-dual-core-processor-t2080-1-gb-ram-120-gb-hard-drive-supermulti-dvd-drive-vista-premium', - 'url_path': 'toshiba-satellite-a135-s4527-155-4-notebook-pc-intel-pentium-dual-core-processor-t2080-1-gb-ram-120-gb-hard-drive-supermulti-dvd-drive-vista-premium.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.0000'}, - ('ol_catalog_product.info', (28, u'3', None, 'id')): {'categories': ['15', - '28'], - 'color': '24', - 'computer_manufacturers': '74', - 'cost': '899.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 14:47:57', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Easily mobile at just 6 pounds, the Toshiba Satellite A135-S4527 makes it easy to get your work done with a large, bright 15.4-inch widescreen LCD. The XGA-resolution screen (1280 x 800) permits side-by-side viewing of documents for increased productivity. It's also great for using as a media center, with Toshiba's unique Express Media Player enabling you to bypass the system and access CDs and DVDs with a touch of button. This affordable notebook PC is powered by Intel's 1.73 GHz Core Duo T2080 processor, which provides an optimized, multithreaded architecture for improved gaming and multitasking performance and efficient power consumption. It also offers a 120 GB hard drive, 1 GB of installed RAM (2 GB maximum), dual-layer/multi-format DVD drive that also burns CDs, integrated 54g wireless connectivity, and Intel GMA 950 video card with up to 256 MB of shared video RAM.\r\n\r\n", - 'dimension': '17 x 7 x 13 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'hardrive': '60 GB hard drive', - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                              \r\n
                                                                \r\n
                                                              • Processor: The Intel Core Duo T2080 processor is built with the Mobile Intel 945PM Express chipset, and it has a 1.73 GHz processor speed, fast 533 MHz front-side bus (FSB), and 1 MB L2 cache. (An L2, or secondary, cache temporarily stores data; and a larger L2 cache can help speed up your system\'s performance. The FSB carries data between the CPU and RAM, and a faster front-side bus will deliver better overall performance.)
                                                              • \r\n
                                                              ', - 'is_recurring': None, - 'manufacturer': None, - 'memory': '1 GB RAM', - 'meta_description': 'Toshiba M285-E 14" Convertible Notebook PC (Intel Core Duo Processor T2300E, 1 GB RAM, 60', - 'meta_keyword': 'Toshiba, notebook, laptop, intel, ', - 'meta_title': 'Toshiba Satellite A135-S4527 155.4" Notebook PC (Intel Pentium Dual Core Processor T2080, 1 GB RAM, 120 GB Hard Drive, SuperMulti DVD Drive, Vista Premium)', - 'minimal_price': '1599.9900', - 'model': 'M285-E', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Toshiba M285-E 14"', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '1599.9900', - 'processor': '1.66 GHz Intel Core Duo T2300E processor', - 'product_id': '28', - 'recurring_profile': None, - 'required_options': '0', - 'screensize': '14-inch screen ', - 'set': '39', - 'short_description': 'Get the competitive edge with the Gateway M285-E. This widescreen Convertible Notebook functions as both a conventional notebook and a tablet.', - 'sku': 'M285-E', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:51:44', - 'url_key': 'toshiba-satellite-a135-s4527-155-4-notebook-pc-intel-pentium-dual-core-processor-t2080-1-gb-ram-120-gb-hard-drive-supermulti-dvd-drive-vista-premium', - 'url_path': 'toshiba-satellite-a135-s4527-155-4-notebook-pc-intel-pentium-dual-core-processor-t2080-1-gb-ram-120-gb-hard-drive-supermulti-dvd-drive-vista-premium.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.0000'}, - ('ol_catalog_product.info', (29, None, None, 'id')): {'categories': [], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '29', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:51:34', - 'url_key': 'cn-clogs-beach-garden-clog-3', - 'url_path': 'cn-clogs-beach-garden-clog-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (29, u'2', None, 'id')): {'categories': [], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '29', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:51:34', - 'url_key': 'cn-clogs-beach-garden-clog-3', - 'url_path': 'cn-clogs-beach-garden-clog-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (29, u'3', None, 'id')): {'categories': [], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '29', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:51:34', - 'url_key': 'cn-clogs-beach-garden-clog-3', - 'url_path': 'cn-clogs-beach-garden-clog-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (30, None, None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '30', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:28', - 'url_key': 'asics-men-s-gel-kayano-xii-8', - 'url_path': 'asics-men-s-gel-kayano-xii-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (30, u'2', None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '30', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:28', - 'url_key': 'asics-men-s-gel-kayano-xii-8', - 'url_path': 'asics-men-s-gel-kayano-xii-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (30, u'3', None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '30', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:28', - 'url_key': 'asics-men-s-gel-kayano-xii-8', - 'url_path': 'asics-men-s-gel-kayano-xii-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (31, None, None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '31', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:02:40', - 'url_key': 'steven-by-steve-madden-pryme-pump-4', - 'url_path': 'steven-by-steve-madden-pryme-pump-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (31, u'2', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '31', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:02:40', - 'url_key': 'steven-by-steve-madden-pryme-pump-4', - 'url_path': 'steven-by-steve-madden-pryme-pump-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (31, u'3', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '31', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:02:40', - 'url_key': 'steven-by-steve-madden-pryme-pump-4', - 'url_path': 'steven-by-steve-madden-pryme-pump-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (32, None, None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '32', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:06:25', - 'url_key': 'nine-west-women-s-lucero-pump-3', - 'url_path': 'nine-west-women-s-lucero-pump-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (32, u'2', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '32', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:06:25', - 'url_key': 'nine-west-women-s-lucero-pump-3', - 'url_path': 'nine-west-women-s-lucero-pump-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (32, u'3', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '32', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:06:25', - 'url_key': 'nine-west-women-s-lucero-pump-3', - 'url_path': 'nine-west-women-s-lucero-pump-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (33, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '33', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:49', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-3', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (33, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '33', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:49', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-3', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (33, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '33', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:49', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-3', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (34, None, None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '34', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:58:35', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-8', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (34, u'2', None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '34', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:58:35', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-8', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (34, u'3', None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '34', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:58:35', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-8', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (35, None, None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:49:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_keyword': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_title': 'Coalesce: Functioning On Impatience T-Shirt', - 'minimal_price': '15.0000', - 'model': 'Impatience', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '35', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'sku': 'coal_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:36:42', - 'url_key': 'coalesce-functioning-on-impatience-t-shirt-small', - 'url_path': 'coalesce-functioning-on-impatience-t-shirt-small.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (35, u'2', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:49:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_keyword': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_title': 'Coalesce: Functioning On Impatience T-Shirt', - 'minimal_price': '15.0000', - 'model': 'Impatience', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '35', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'sku': 'coal_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:36:42', - 'url_key': 'coalesce-functioning-on-impatience-t-shirt-small', - 'url_path': 'coalesce-functioning-on-impatience-t-shirt-small.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (35, u'3', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:49:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_keyword': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_title': 'Coalesce: Functioning On Impatience T-Shirt', - 'minimal_price': '15.0000', - 'model': 'Impatience', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '35', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'sku': 'coal_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:36:42', - 'url_key': 'coalesce-functioning-on-impatience-t-shirt-small', - 'url_path': 'coalesce-functioning-on-impatience-t-shirt-small.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (36, None, None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:53:06', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '22.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '36', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'sku': 'ink_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:49:48', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee-sm', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (36, u'2', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:53:06', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '22.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '36', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'sku': 'ink_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:49:48', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee-sm', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (36, u'3', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:53:06', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '22.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '36', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'sku': 'ink_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:49:48', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee-sm', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (37, None, None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:59:39', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Only Children: Paisley T-Shirt', - 'meta_keyword': 'The Only Children: Paisley T-Shirt', - 'meta_title': 'The Only Children: Paisley T-Shirt', - 'minimal_price': '15.0000', - 'model': 'The Only Children: Paisley T-Shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Only Children: Paisley T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '37', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': 'Printed on American Apparel Classic style 5495 California cotton T shirst. ', - 'sku': 'oc_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:47:47', - 'url_key': 'the-only-children-paisley-t-shirt-sm', - 'url_path': 'the-only-children-paisley-t-shirt-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (37, u'2', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:59:39', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Only Children: Paisley T-Shirt', - 'meta_keyword': 'The Only Children: Paisley T-Shirt', - 'meta_title': 'The Only Children: Paisley T-Shirt', - 'minimal_price': '15.0000', - 'model': 'The Only Children: Paisley T-Shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Only Children: Paisley T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '37', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': 'Printed on American Apparel Classic style 5495 California cotton T shirst. ', - 'sku': 'oc_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:47:47', - 'url_key': 'the-only-children-paisley-t-shirt-sm', - 'url_path': 'the-only-children-paisley-t-shirt-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (37, u'3', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:59:39', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Only Children: Paisley T-Shirt', - 'meta_keyword': 'The Only Children: Paisley T-Shirt', - 'meta_title': 'The Only Children: Paisley T-Shirt', - 'minimal_price': '15.0000', - 'model': 'The Only Children: Paisley T-Shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Only Children: Paisley T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '37', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': 'Printed on American Apparel Classic style 5495 California cotton T shirst. ', - 'sku': 'oc_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:47:47', - 'url_key': 'the-only-children-paisley-t-shirt-sm', - 'url_path': 'the-only-children-paisley-t-shirt-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (38, None, None, 'id')): {'categories': ['4'], - 'color': '26', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '38', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_r_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:39:57', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-sm', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (38, u'2', None, 'id')): {'categories': ['4'], - 'color': '26', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '38', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_r_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:39:57', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-sm', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (38, u'3', None, 'id')): {'categories': ['4'], - 'color': '26', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '38', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_r_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:39:57', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-sm', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (39, None, None, 'id')): {'categories': ['19'], - 'color': '22', - 'cost': '5.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:07:02', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Printed on American Apparel Classic style 5495 California Fleece Pull-Over Hoodies. Sizing info is available here. ', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'meta_keyword': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'meta_title': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'minimal_price': None, - 'model': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '30.0000', - 'product_id': '39', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California Fleece Pull-Over Hoodies. ', - 'sku': '4fasd5f5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-24 23:45:44', - 'url_key': 'the-get-up-kids-band-camp-pullover-hoodie', - 'url_path': 'the-get-up-kids-band-camp-pullover-hoodie.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.7500'}, - ('ol_catalog_product.info', (39, u'2', None, 'id')): {'categories': ['19'], - 'color': '22', - 'cost': '5.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:07:02', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Printed on American Apparel Classic style 5495 California Fleece Pull-Over Hoodies. Sizing info is available here. ', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'meta_keyword': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'meta_title': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'minimal_price': None, - 'model': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '30.0000', - 'product_id': '39', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California Fleece Pull-Over Hoodies. ', - 'sku': '4fasd5f5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-24 23:45:44', - 'url_key': 'the-get-up-kids-band-camp-pullover-hoodie', - 'url_path': 'the-get-up-kids-band-camp-pullover-hoodie.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.7500'}, - ('ol_catalog_product.info', (39, u'3', None, 'id')): {'categories': ['19'], - 'color': '22', - 'cost': '5.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:07:02', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Printed on American Apparel Classic style 5495 California Fleece Pull-Over Hoodies. Sizing info is available here. ', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'meta_keyword': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'meta_title': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'minimal_price': None, - 'model': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '30.0000', - 'product_id': '39', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California Fleece Pull-Over Hoodies. ', - 'sku': '4fasd5f5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-24 23:45:44', - 'url_key': 'the-get-up-kids-band-camp-pullover-hoodie', - 'url_path': 'the-get-up-kids-band-camp-pullover-hoodie.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.7500'}, - ('ol_catalog_product.info', (41, None, None, 'id')): {'categories': ['23'], - 'color': '59', - 'cost': '100.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Thailand', - 'created_at': '2007-08-27 10:43:59', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Features include inset panel sides and for spacious drawers and two wicker baskets. 41"Wx18"Dx36"H.', - 'dimension': '21"W x 44"L x 35.5"H', - 'enable_googlecheckout': None, - 'finish': 'Asian Beechwood', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Our Akio dresser has a solid hardwood frame. Features include inset panel sides and for spacious drawers and two wicker baskets.', - 'meta_keyword': 'Hardwood, drawers, wicker, asian, beechwood', - 'meta_title': 'Akio Dresser', - 'minimal_price': '399.9900', - 'model': '384822', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Akio Dresser', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '41', - 'recurring_profile': None, - 'required_options': '0', - 'room': '71', - 'set': '42', - 'short_description': 'Our Akio dresser has a solid hardwood frame. ', - 'sku': '384822', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-29 22:28:43', - 'url_key': 'akio-dresser', - 'url_path': 'akio-dresser.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '128.9700'}, - ('ol_catalog_product.info', (41, u'2', None, 'id')): {'categories': ['23'], - 'color': '59', - 'cost': '100.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Thailand', - 'created_at': '2007-08-27 10:43:59', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Features include inset panel sides and for spacious drawers and two wicker baskets. 41"Wx18"Dx36"H.', - 'dimension': '21"W x 44"L x 35.5"H', - 'enable_googlecheckout': None, - 'finish': 'Asian Beechwood', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Our Akio dresser has a solid hardwood frame. Features include inset panel sides and for spacious drawers and two wicker baskets.', - 'meta_keyword': 'Hardwood, drawers, wicker, asian, beechwood', - 'meta_title': 'Akio Dresser', - 'minimal_price': '399.9900', - 'model': '384822', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Akio Dresser', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '41', - 'recurring_profile': None, - 'required_options': '0', - 'room': '71', - 'set': '42', - 'short_description': 'Our Akio dresser has a solid hardwood frame. ', - 'sku': '384822', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-29 22:28:43', - 'url_key': 'akio-dresser', - 'url_path': 'akio-dresser.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '128.9700'}, - ('ol_catalog_product.info', (41, u'3', None, 'id')): {'categories': ['23'], - 'color': '59', - 'cost': '100.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Thailand', - 'created_at': '2007-08-27 10:43:59', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Features include inset panel sides and for spacious drawers and two wicker baskets. 41"Wx18"Dx36"H.', - 'dimension': '21"W x 44"L x 35.5"H', - 'enable_googlecheckout': None, - 'finish': 'Asian Beechwood', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Our Akio dresser has a solid hardwood frame. Features include inset panel sides and for spacious drawers and two wicker baskets.', - 'meta_keyword': 'Hardwood, drawers, wicker, asian, beechwood', - 'meta_title': 'Akio Dresser', - 'minimal_price': '399.9900', - 'model': '384822', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Akio Dresser', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '41', - 'recurring_profile': None, - 'required_options': '0', - 'room': '71', - 'set': '42', - 'short_description': 'Our Akio dresser has a solid hardwood frame. ', - 'sku': '384822', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-29 22:28:43', - 'url_key': 'akio-dresser', - 'url_path': 'akio-dresser.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '128.9700'}, - ('ol_catalog_product.info', (42, None, None, 'id')): {'categories': ['23'], - 'color': '59', - 'cost': '800.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Thailand', - 'created_at': '2007-08-27 10:50:01', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Entirely handcrafted of solid Bamboo. Designed for use with a mattress alone, it includes a sturdy, padded wood platform for comfort and proper mattress support.', - 'dimension': '62"W x 84"L x 8"H', - 'enable_googlecheckout': None, - 'finish': 'Bamboo', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Our Barcelona platform bed captures the spirit and drama of late 20th century design with a variety of subtle details.', - 'meta_keyword': 'bamboo, barcelona, platform, bed', - 'meta_title': 'Barcelona Bamboo Platform Bed', - 'minimal_price': '2299.0000', - 'model': 'bar1234', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Barcelona Bamboo Platform Bed', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '2299.0000', - 'product_id': '42', - 'recurring_profile': None, - 'required_options': '0', - 'room': '71', - 'set': '42', - 'short_description': 'Our Barcelona platform bed captures the spirit and drama of late 20th century design with a variety of subtle details.', - 'sku': 'bar1234', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-24 23:59:46', - 'url_key': 'barcelona-bamboo-platform-bed', - 'url_path': 'barcelona-bamboo-platform-bed.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '150.0000'}, - ('ol_catalog_product.info', (42, u'2', None, 'id')): {'categories': ['23'], - 'color': '59', - 'cost': '800.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Thailand', - 'created_at': '2007-08-27 10:50:01', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Entirely handcrafted of solid Bamboo. Designed for use with a mattress alone, it includes a sturdy, padded wood platform for comfort and proper mattress support.', - 'dimension': '62"W x 84"L x 8"H', - 'enable_googlecheckout': None, - 'finish': 'Bamboo', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Our Barcelona platform bed captures the spirit and drama of late 20th century design with a variety of subtle details.', - 'meta_keyword': 'bamboo, barcelona, platform, bed', - 'meta_title': 'Barcelona Bamboo Platform Bed', - 'minimal_price': '2299.0000', - 'model': 'bar1234', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Barcelona Bamboo Platform Bed', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '2299.0000', - 'product_id': '42', - 'recurring_profile': None, - 'required_options': '0', - 'room': '71', - 'set': '42', - 'short_description': 'Our Barcelona platform bed captures the spirit and drama of late 20th century design with a variety of subtle details.', - 'sku': 'bar1234', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-24 23:59:46', - 'url_key': 'barcelona-bamboo-platform-bed', - 'url_path': 'barcelona-bamboo-platform-bed.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '150.0000'}, - ('ol_catalog_product.info', (42, u'3', None, 'id')): {'categories': ['23'], - 'color': '59', - 'cost': '800.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Thailand', - 'created_at': '2007-08-27 10:50:01', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Entirely handcrafted of solid Bamboo. Designed for use with a mattress alone, it includes a sturdy, padded wood platform for comfort and proper mattress support.', - 'dimension': '62"W x 84"L x 8"H', - 'enable_googlecheckout': None, - 'finish': 'Bamboo', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Our Barcelona platform bed captures the spirit and drama of late 20th century design with a variety of subtle details.', - 'meta_keyword': 'bamboo, barcelona, platform, bed', - 'meta_title': 'Barcelona Bamboo Platform Bed', - 'minimal_price': '2299.0000', - 'model': 'bar1234', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Barcelona Bamboo Platform Bed', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '2299.0000', - 'product_id': '42', - 'recurring_profile': None, - 'required_options': '0', - 'room': '71', - 'set': '42', - 'short_description': 'Our Barcelona platform bed captures the spirit and drama of late 20th century design with a variety of subtle details.', - 'sku': 'bar1234', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-24 23:59:46', - 'url_key': 'barcelona-bamboo-platform-bed', - 'url_path': 'barcelona-bamboo-platform-bed.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '150.0000'}, - ('ol_catalog_product.info', (44, None, None, 'id')): {'categories': ['26'], - 'color': '24', - 'cost': '200.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:06:05', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Canon EOS Digital Rebel camera now has a new, faster, even smaller big brother. Sibling rivalries aside, the 8.0-megapixel Canon EOS Digital Rebel XT SLR adds resolution, speed, extra creative control, and enhanced comfort in the hand to one of the smallest and lightest digital cameras in its class. Even with its advancements in ergonomic design and technology, this easy-to-use EOS digital camera is compatible with all of Canon's EF lenses, including the EF-S lenses.", - 'dimension': '5 x 3.7 x 2.5 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                \r\n
                                                                  \r\n\r\n
                                                                • 8.0-megapixel CMOS sensor captures enough detail for photo-quality 16 x 22-inch prints
                                                                • \r\n
                                                                • Includes Canon\'s EF-S 18-55mm, f3.5-5.6 zoom lens
                                                                • \r\n
                                                                • DIGIC II Image Processor provides fast, accurate image processing; captures images at a rate of up to 3 frames per second
                                                                • \r\n
                                                                • Fast start-up time--.2 seconds
                                                                • \r\n
                                                                • Powered by rechargeable Lithium-ion battery (included, with charger)
                                                                • \r\n
                                                                \r\n', - 'is_recurring': None, - 'manufacturer': '34', - 'megapixels': '90', - 'meta_description': 'Canon Digital Rebel XT 8MP Digital SLR Camera with EF-S 18-55mm f3.5-5.6 Lens (Black)', - 'meta_keyword': 'canon, slr, camera, 8, digital', - 'meta_title': 'Canon Digital Rebel XT 8MP Digital SLR Camera with EF-S 18-55mm f3.5-5.6 Lens (Black)', - 'minimal_price': '449.0000', - 'model': 'Rebel XT ', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Canon Digital Rebel XT 8MP Digital SLR Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '550.0000', - 'product_id': '44', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': ' Canon EOS Digital Rebel XT SLR adds resolution, speed, extra creative control, and enhanced comfort in the hand to one of the smallest and lightest digital cameras in its class. ', - 'sku': 'Rebel XT', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [{'all_groups': '1', - 'cust_group': 32000, - 'price': '449.0000', - 'price_id': '1', - 'price_qty': '2.0000', - 'website_id': '0', - 'website_price': '449.0000'}], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-24 22:50:46', - 'url_key': 'canon-digital-rebel-xt-8mp-digital-slr-camera-with-ef-s-18-55mm-f3-5-5-6-lens-black', - 'url_path': 'canon-digital-rebel-xt-8mp-digital-slr-camera-with-ef-s-18-55mm-f3-5-5-6-lens-black.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (44, u'2', None, 'id')): {'categories': ['26'], - 'color': '24', - 'cost': '200.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:06:05', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Canon EOS Digital Rebel camera now has a new, faster, even smaller big brother. Sibling rivalries aside, the 8.0-megapixel Canon EOS Digital Rebel XT SLR adds resolution, speed, extra creative control, and enhanced comfort in the hand to one of the smallest and lightest digital cameras in its class. Even with its advancements in ergonomic design and technology, this easy-to-use EOS digital camera is compatible with all of Canon's EF lenses, including the EF-S lenses.", - 'dimension': '5 x 3.7 x 2.5 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                  \r\n
                                                                    \r\n\r\n
                                                                  • 8.0-megapixel CMOS sensor captures enough detail for photo-quality 16 x 22-inch prints
                                                                  • \r\n
                                                                  • Includes Canon\'s EF-S 18-55mm, f3.5-5.6 zoom lens
                                                                  • \r\n
                                                                  • DIGIC II Image Processor provides fast, accurate image processing; captures images at a rate of up to 3 frames per second
                                                                  • \r\n
                                                                  • Fast start-up time--.2 seconds
                                                                  • \r\n
                                                                  • Powered by rechargeable Lithium-ion battery (included, with charger)
                                                                  • \r\n
                                                                  \r\n', - 'is_recurring': None, - 'manufacturer': '34', - 'megapixels': '90', - 'meta_description': 'Canon Digital Rebel XT 8MP Digital SLR Camera with EF-S 18-55mm f3.5-5.6 Lens (Black)', - 'meta_keyword': 'canon, slr, camera, 8, digital', - 'meta_title': 'Canon Digital Rebel XT 8MP Digital SLR Camera with EF-S 18-55mm f3.5-5.6 Lens (Black)', - 'minimal_price': '449.0000', - 'model': 'Rebel XT ', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Canon Digital Rebel XT 8MP Digital SLR Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '550.0000', - 'product_id': '44', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': ' Canon EOS Digital Rebel XT SLR adds resolution, speed, extra creative control, and enhanced comfort in the hand to one of the smallest and lightest digital cameras in its class. ', - 'sku': 'Rebel XT', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [{'all_groups': '1', - 'cust_group': 32000, - 'price': '449.0000', - 'price_id': '1', - 'price_qty': '2.0000', - 'website_id': '0', - 'website_price': '449.0000'}], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-24 22:50:46', - 'url_key': 'canon-digital-rebel-xt-8mp-digital-slr-camera-with-ef-s-18-55mm-f3-5-5-6-lens-black', - 'url_path': 'canon-digital-rebel-xt-8mp-digital-slr-camera-with-ef-s-18-55mm-f3-5-5-6-lens-black.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (44, u'3', None, 'id')): {'categories': ['26'], - 'color': '24', - 'cost': '200.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:06:05', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Canon EOS Digital Rebel camera now has a new, faster, even smaller big brother. Sibling rivalries aside, the 8.0-megapixel Canon EOS Digital Rebel XT SLR adds resolution, speed, extra creative control, and enhanced comfort in the hand to one of the smallest and lightest digital cameras in its class. Even with its advancements in ergonomic design and technology, this easy-to-use EOS digital camera is compatible with all of Canon's EF lenses, including the EF-S lenses.", - 'dimension': '5 x 3.7 x 2.5 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                    \r\n
                                                                      \r\n\r\n
                                                                    • 8.0-megapixel CMOS sensor captures enough detail for photo-quality 16 x 22-inch prints
                                                                    • \r\n
                                                                    • Includes Canon\'s EF-S 18-55mm, f3.5-5.6 zoom lens
                                                                    • \r\n
                                                                    • DIGIC II Image Processor provides fast, accurate image processing; captures images at a rate of up to 3 frames per second
                                                                    • \r\n
                                                                    • Fast start-up time--.2 seconds
                                                                    • \r\n
                                                                    • Powered by rechargeable Lithium-ion battery (included, with charger)
                                                                    • \r\n
                                                                    \r\n', - 'is_recurring': None, - 'manufacturer': '34', - 'megapixels': '90', - 'meta_description': 'Canon Digital Rebel XT 8MP Digital SLR Camera with EF-S 18-55mm f3.5-5.6 Lens (Black)', - 'meta_keyword': 'canon, slr, camera, 8, digital', - 'meta_title': 'Canon Digital Rebel XT 8MP Digital SLR Camera with EF-S 18-55mm f3.5-5.6 Lens (Black)', - 'minimal_price': '449.0000', - 'model': 'Rebel XT ', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Canon Digital Rebel XT 8MP Digital SLR Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '550.0000', - 'product_id': '44', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': ' Canon EOS Digital Rebel XT SLR adds resolution, speed, extra creative control, and enhanced comfort in the hand to one of the smallest and lightest digital cameras in its class. ', - 'sku': 'Rebel XT', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [{'all_groups': '1', - 'cust_group': 32000, - 'price': '449.0000', - 'price_id': '1', - 'price_qty': '2.0000', - 'website_id': '0', - 'website_price': '449.0000'}], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-24 22:50:46', - 'url_key': 'canon-digital-rebel-xt-8mp-digital-slr-camera-with-ef-s-18-55mm-f3-5-5-6-lens-black', - 'url_path': 'canon-digital-rebel-xt-8mp-digital-slr-camera-with-ef-s-18-55mm-f3-5-5-6-lens-black.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (45, None, None, 'id')): {'categories': ['26'], - 'color': '23', - 'cost': '20.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:18:56', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Argus QC-2185 Quick Click 5MP digital camera offers all the basic features you need in a compact and stylish digital camera. This unit is easy to use, and is perfect for those who want a completely portable option for taking good pictures, without having to empty their wallet.\r\n\r\nThe Argus QC-2185 features a clear and bright 1.1-inch CSTN (color super-twist nematic) LCD display that makes it easy to frame the perfect picture. Thanks to its USB 1.1 connection compatibility, this digital camera lets you quickly download pictures to your Mac or PC, and can also function as a handy web camera. The QC-2185 includes eight megabytes of internal SDRAM memory, with the ability to expand camera memory via a built-in SD (secure digital) storage card slot for easy storage and transfer of your pictures. This unit also includes a built-in auto flash with a three to seven foot range, and comes with ArcSoft PhotoImpression's photo editing software which makes it easy for you to edit, crop, adjust and improve all your best pictures to make them even better.\r\n", - 'dimension': '2.75 inches x 1.5 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                      \r\n
                                                                        5 megapixel digital camera with a 1600 x 1200 resolution and an f2.8 aperture\r\n
                                                                      • Clear and bright 1.1-inch CSTN LCD display makes it easy to frame the perfect picture
                                                                      • \r\n
                                                                      • USB 1.1 connection compatibility lets you quickly download pictures to your Mac or PC, and function as a web camera
                                                                      • \r\n
                                                                      • Runs on 3 AAA batteries, and requires; Windows OS 98 or higher, at least 32 MB of RAM and 125 MB of hard disk space, and an available USB port
                                                                      • \r\n
                                                                      • Weighs 3.4 ounces, measures 3.6 x 2.4 x 1.1 inches (W x H x D), and is backed by a 1-year manufacturer\'s warranty
                                                                      • \r\n
                                                                      \r\n', - 'is_recurring': None, - 'manufacturer': '32', - 'megapixels': '93', - 'meta_description': 'Argus QC-2185 Quick Click 2MP Digital Camera', - 'meta_keyword': 'Argus, QC-2185, digital, camera, 2MP', - 'meta_title': 'Argus QC-2185 Quick Click 2MP Digital Camera', - 'minimal_price': '37.4900', - 'model': 'QC-2185', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': ' Argus QC-2185 Quick Click 5MP Digital Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '37.4900', - 'product_id': '45', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': 'The Argus QC-2185 Quick Click 5MP digital camera offers all the basic features you need in a compact and stylish digital camera. This unit is easy to use, and is perfect for those who want a completely portable option for taking good pictures, without having to empty their wallet.', - 'sku': 'QC-2185', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:52:48', - 'url_key': 'argus-qc-2185-quick-click-5mp-digital-camera', - 'url_path': 'argus-qc-2185-quick-click-5mp-digital-camera.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (45, u'2', None, 'id')): {'categories': ['26'], - 'color': '23', - 'cost': '20.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:18:56', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Argus QC-2185 Quick Click 5MP digital camera offers all the basic features you need in a compact and stylish digital camera. This unit is easy to use, and is perfect for those who want a completely portable option for taking good pictures, without having to empty their wallet.\r\n\r\nThe Argus QC-2185 features a clear and bright 1.1-inch CSTN (color super-twist nematic) LCD display that makes it easy to frame the perfect picture. Thanks to its USB 1.1 connection compatibility, this digital camera lets you quickly download pictures to your Mac or PC, and can also function as a handy web camera. The QC-2185 includes eight megabytes of internal SDRAM memory, with the ability to expand camera memory via a built-in SD (secure digital) storage card slot for easy storage and transfer of your pictures. This unit also includes a built-in auto flash with a three to seven foot range, and comes with ArcSoft PhotoImpression's photo editing software which makes it easy for you to edit, crop, adjust and improve all your best pictures to make them even better.\r\n", - 'dimension': '2.75 inches x 1.5 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                        \r\n
                                                                          5 megapixel digital camera with a 1600 x 1200 resolution and an f2.8 aperture\r\n
                                                                        • Clear and bright 1.1-inch CSTN LCD display makes it easy to frame the perfect picture
                                                                        • \r\n
                                                                        • USB 1.1 connection compatibility lets you quickly download pictures to your Mac or PC, and function as a web camera
                                                                        • \r\n
                                                                        • Runs on 3 AAA batteries, and requires; Windows OS 98 or higher, at least 32 MB of RAM and 125 MB of hard disk space, and an available USB port
                                                                        • \r\n
                                                                        • Weighs 3.4 ounces, measures 3.6 x 2.4 x 1.1 inches (W x H x D), and is backed by a 1-year manufacturer\'s warranty
                                                                        • \r\n
                                                                        \r\n', - 'is_recurring': None, - 'manufacturer': '32', - 'megapixels': '93', - 'meta_description': 'Argus QC-2185 Quick Click 2MP Digital Camera', - 'meta_keyword': 'Argus, QC-2185, digital, camera, 2MP', - 'meta_title': 'Argus QC-2185 Quick Click 2MP Digital Camera', - 'minimal_price': '37.4900', - 'model': 'QC-2185', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': ' Argus QC-2185 Quick Click 5MP Digital Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '37.4900', - 'product_id': '45', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': 'The Argus QC-2185 Quick Click 5MP digital camera offers all the basic features you need in a compact and stylish digital camera. This unit is easy to use, and is perfect for those who want a completely portable option for taking good pictures, without having to empty their wallet.', - 'sku': 'QC-2185', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:52:48', - 'url_key': 'argus-qc-2185-quick-click-5mp-digital-camera', - 'url_path': 'argus-qc-2185-quick-click-5mp-digital-camera.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (45, u'3', None, 'id')): {'categories': ['26'], - 'color': '23', - 'cost': '20.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:18:56', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Argus QC-2185 Quick Click 5MP digital camera offers all the basic features you need in a compact and stylish digital camera. This unit is easy to use, and is perfect for those who want a completely portable option for taking good pictures, without having to empty their wallet.\r\n\r\nThe Argus QC-2185 features a clear and bright 1.1-inch CSTN (color super-twist nematic) LCD display that makes it easy to frame the perfect picture. Thanks to its USB 1.1 connection compatibility, this digital camera lets you quickly download pictures to your Mac or PC, and can also function as a handy web camera. The QC-2185 includes eight megabytes of internal SDRAM memory, with the ability to expand camera memory via a built-in SD (secure digital) storage card slot for easy storage and transfer of your pictures. This unit also includes a built-in auto flash with a three to seven foot range, and comes with ArcSoft PhotoImpression's photo editing software which makes it easy for you to edit, crop, adjust and improve all your best pictures to make them even better.\r\n", - 'dimension': '2.75 inches x 1.5 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                          \r\n
                                                                            5 megapixel digital camera with a 1600 x 1200 resolution and an f2.8 aperture\r\n
                                                                          • Clear and bright 1.1-inch CSTN LCD display makes it easy to frame the perfect picture
                                                                          • \r\n
                                                                          • USB 1.1 connection compatibility lets you quickly download pictures to your Mac or PC, and function as a web camera
                                                                          • \r\n
                                                                          • Runs on 3 AAA batteries, and requires; Windows OS 98 or higher, at least 32 MB of RAM and 125 MB of hard disk space, and an available USB port
                                                                          • \r\n
                                                                          • Weighs 3.4 ounces, measures 3.6 x 2.4 x 1.1 inches (W x H x D), and is backed by a 1-year manufacturer\'s warranty
                                                                          • \r\n
                                                                          \r\n', - 'is_recurring': None, - 'manufacturer': '32', - 'megapixels': '93', - 'meta_description': 'Argus QC-2185 Quick Click 2MP Digital Camera', - 'meta_keyword': 'Argus, QC-2185, digital, camera, 2MP', - 'meta_title': 'Argus QC-2185 Quick Click 2MP Digital Camera', - 'minimal_price': '37.4900', - 'model': 'QC-2185', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': ' Argus QC-2185 Quick Click 5MP Digital Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '37.4900', - 'product_id': '45', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': 'The Argus QC-2185 Quick Click 5MP digital camera offers all the basic features you need in a compact and stylish digital camera. This unit is easy to use, and is perfect for those who want a completely portable option for taking good pictures, without having to empty their wallet.', - 'sku': 'QC-2185', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:52:48', - 'url_key': 'argus-qc-2185-quick-click-5mp-digital-camera', - 'url_path': 'argus-qc-2185-quick-click-5mp-digital-camera.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (46, None, None, 'id')): {'categories': ['12', - '26'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:23:34', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Olympus continues to innovate with the launch of the Stylus 750 digital camera, a technically sophisticated point-and-shoot camera offering a number of pioneering technologies such as Dual Image Stabilization, Bright Capture Technology, and TruePic Turbo, as well as a powerful 5x optical zoom that tucks away into a streamlined metal, all-weather body design. The camera is distinguished by a number of premium features, including:\r\n\r\n * An advanced combination of the mechanical CCD-shift Image Stabilization and Digital Image Stabilization work together to ensure the clearest pictures possible in any situation;\r\n * A 5x optical zoom lens with a newly developed lens element to maintain a small compact size;\r\n * A 2.5-inch LCD and Bright Capture Technology dramatically improve composition, capture and review of images in low-light situations;\r\n * Olympus' exclusive TruePic Turbo Image Processing engine is coupled with a 7.1-megapixel image sensor to produce crisp, high-quality p", - 'dimension': '3.8 x 2.1 x 1 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                            \r\n
                                                                              \r\n\r\n
                                                                            • 7.1-megapixel CCD captures enough detail for photo-quality 15 x 20-inch prints
                                                                            • \r\n
                                                                            • 5x image-stabilized optical zoom; 2.5-inch LCD display
                                                                            • \r\n
                                                                            • Compact, all-weather body measures 3.8 x 2.1 x 0.96 inches
                                                                            • \r\n
                                                                            • Bright Capture technology; 27 selectable shooting modes; built-in Help guide
                                                                            • \r\n
                                                                            • Stores images on xD Picture Cards; powered by Li-Ion battery (battery and charger included)
                                                                            • \r\n
                                                                            ', - 'is_recurring': None, - 'manufacturer': '33', - 'megapixels': '91', - 'meta_description': 'Olympus Stylus 750 7.1MP Digital Camera with Digital Image Stabilized 5x Optical Zoom and CCD Shift Stabilization (Silver)', - 'meta_keyword': 'Olympus, stylus, 750, 7MP, digital, camera, zoom', - 'meta_title': 'Olympus Stylus 750 7.1MP Digital Camera with Digital Image Stabilized 5x Optical Zoom and CCD Shift Stabilization (Silver)', - 'minimal_price': '161.9400', - 'model': '750', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': ' Olympus Stylus 750 7.1MP Digital Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '161.9400', - 'product_id': '46', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': 'A technically sophisticated point-and-shoot camera offering a number of pioneering technologies such as Dual Image Stabilization, Bright Capture Technology, and TruePic Turbo, as well as a powerful 5x optical zoom.', - 'sku': '750', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:57:57', - 'url_key': 'olympus-stylus-750-7-1mp-digital-camera', - 'url_path': 'olympus-stylus-750-7-1mp-digital-camera.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (46, u'2', None, 'id')): {'categories': ['12', - '26'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:23:34', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Olympus continues to innovate with the launch of the Stylus 750 digital camera, a technically sophisticated point-and-shoot camera offering a number of pioneering technologies such as Dual Image Stabilization, Bright Capture Technology, and TruePic Turbo, as well as a powerful 5x optical zoom that tucks away into a streamlined metal, all-weather body design. The camera is distinguished by a number of premium features, including:\r\n\r\n * An advanced combination of the mechanical CCD-shift Image Stabilization and Digital Image Stabilization work together to ensure the clearest pictures possible in any situation;\r\n * A 5x optical zoom lens with a newly developed lens element to maintain a small compact size;\r\n * A 2.5-inch LCD and Bright Capture Technology dramatically improve composition, capture and review of images in low-light situations;\r\n * Olympus' exclusive TruePic Turbo Image Processing engine is coupled with a 7.1-megapixel image sensor to produce crisp, high-quality p", - 'dimension': '3.8 x 2.1 x 1 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                              \r\n
                                                                                \r\n\r\n
                                                                              • 7.1-megapixel CCD captures enough detail for photo-quality 15 x 20-inch prints
                                                                              • \r\n
                                                                              • 5x image-stabilized optical zoom; 2.5-inch LCD display
                                                                              • \r\n
                                                                              • Compact, all-weather body measures 3.8 x 2.1 x 0.96 inches
                                                                              • \r\n
                                                                              • Bright Capture technology; 27 selectable shooting modes; built-in Help guide
                                                                              • \r\n
                                                                              • Stores images on xD Picture Cards; powered by Li-Ion battery (battery and charger included)
                                                                              • \r\n
                                                                              ', - 'is_recurring': None, - 'manufacturer': '33', - 'megapixels': '91', - 'meta_description': 'Olympus Stylus 750 7.1MP Digital Camera with Digital Image Stabilized 5x Optical Zoom and CCD Shift Stabilization (Silver)', - 'meta_keyword': 'Olympus, stylus, 750, 7MP, digital, camera, zoom', - 'meta_title': 'Olympus Stylus 750 7.1MP Digital Camera with Digital Image Stabilized 5x Optical Zoom and CCD Shift Stabilization (Silver)', - 'minimal_price': '161.9400', - 'model': '750', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': ' Olympus Stylus 750 7.1MP Digital Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '161.9400', - 'product_id': '46', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': 'A technically sophisticated point-and-shoot camera offering a number of pioneering technologies such as Dual Image Stabilization, Bright Capture Technology, and TruePic Turbo, as well as a powerful 5x optical zoom.', - 'sku': '750', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:57:57', - 'url_key': 'olympus-stylus-750-7-1mp-digital-camera', - 'url_path': 'olympus-stylus-750-7-1mp-digital-camera.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (46, u'3', None, 'id')): {'categories': ['12', - '26'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:23:34', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Olympus continues to innovate with the launch of the Stylus 750 digital camera, a technically sophisticated point-and-shoot camera offering a number of pioneering technologies such as Dual Image Stabilization, Bright Capture Technology, and TruePic Turbo, as well as a powerful 5x optical zoom that tucks away into a streamlined metal, all-weather body design. The camera is distinguished by a number of premium features, including:\r\n\r\n * An advanced combination of the mechanical CCD-shift Image Stabilization and Digital Image Stabilization work together to ensure the clearest pictures possible in any situation;\r\n * A 5x optical zoom lens with a newly developed lens element to maintain a small compact size;\r\n * A 2.5-inch LCD and Bright Capture Technology dramatically improve composition, capture and review of images in low-light situations;\r\n * Olympus' exclusive TruePic Turbo Image Processing engine is coupled with a 7.1-megapixel image sensor to produce crisp, high-quality p", - 'dimension': '3.8 x 2.1 x 1 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                                \r\n
                                                                                  \r\n\r\n
                                                                                • 7.1-megapixel CCD captures enough detail for photo-quality 15 x 20-inch prints
                                                                                • \r\n
                                                                                • 5x image-stabilized optical zoom; 2.5-inch LCD display
                                                                                • \r\n
                                                                                • Compact, all-weather body measures 3.8 x 2.1 x 0.96 inches
                                                                                • \r\n
                                                                                • Bright Capture technology; 27 selectable shooting modes; built-in Help guide
                                                                                • \r\n
                                                                                • Stores images on xD Picture Cards; powered by Li-Ion battery (battery and charger included)
                                                                                • \r\n
                                                                                ', - 'is_recurring': None, - 'manufacturer': '33', - 'megapixels': '91', - 'meta_description': 'Olympus Stylus 750 7.1MP Digital Camera with Digital Image Stabilized 5x Optical Zoom and CCD Shift Stabilization (Silver)', - 'meta_keyword': 'Olympus, stylus, 750, 7MP, digital, camera, zoom', - 'meta_title': 'Olympus Stylus 750 7.1MP Digital Camera with Digital Image Stabilized 5x Optical Zoom and CCD Shift Stabilization (Silver)', - 'minimal_price': '161.9400', - 'model': '750', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': ' Olympus Stylus 750 7.1MP Digital Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '161.9400', - 'product_id': '46', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': 'A technically sophisticated point-and-shoot camera offering a number of pioneering technologies such as Dual Image Stabilization, Bright Capture Technology, and TruePic Turbo, as well as a powerful 5x optical zoom.', - 'sku': '750', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:57:57', - 'url_key': 'olympus-stylus-750-7-1mp-digital-camera', - 'url_path': 'olympus-stylus-750-7-1mp-digital-camera.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (47, None, None, 'id')): {'categories': ['26'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:27:14', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Replacing the highly popular PowerShot A620, the PowerShot A630 features a rotating 2.5-inch vari-angle LCD, 4x optical zoom lens, and a vast array of creative shooting modes.
                                                                                \r\n\r\nThe PowerShot A630 packs a vast array of advanced features into a remarkably compact space

                                                                                \r\n\r\n', - 'dimension': '4.3 x 2.6 x 1.9 inches ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                                  \r\n
                                                                                    \r\n
                                                                                  • 8-megapixel CCD captures enough detail for photo-quality 16 x 22-inch prints
                                                                                  • \r\n
                                                                                  • 4x optical zoom; 2.5-inch vari-angle LCD display
                                                                                  • \r\n
                                                                                  • ISO range up to ISO 800 for less blur in low light while hand-holding
                                                                                  • \r\n
                                                                                  • 3:2 guide masks LCD to display 4 x 6-inch print size; 16:9 format option for still images
                                                                                  • \r\n
                                                                                  • Stores images on SD cards; powered by 4 AA-size batteries
                                                                                  • \r\n
                                                                                  ', - 'is_recurring': None, - 'manufacturer': '34', - 'megapixels': '90', - 'meta_description': 'Canon PowerShot A630 8MP Digital Camera with 4x Optical Zoom', - 'meta_keyword': 'canon, powershot, A630, digital, camera, optical, zoom', - 'meta_title': 'Canon PowerShot A630 8MP Digital Camera with 4x Optical Zoom', - 'minimal_price': '329.9900', - 'model': 'A630 ', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Canon PowerShot A630 8MP Digital Camera with 4x Optical Zoom', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '329.9900', - 'product_id': '47', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': 'Replacing the highly popular PowerShot A620, the PowerShot A630 features a rotating 2.5-inch vari-angle LCD, 4x optical zoom lens, and a vast array of creative shooting modes.', - 'sku': 'A630', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:58:14', - 'url_key': 'canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom', - 'url_path': 'canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (47, u'2', None, 'id')): {'categories': ['26'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:27:14', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Replacing the highly popular PowerShot A620, the PowerShot A630 features a rotating 2.5-inch vari-angle LCD, 4x optical zoom lens, and a vast array of creative shooting modes.
                                                                                  \r\n\r\nThe PowerShot A630 packs a vast array of advanced features into a remarkably compact space

                                                                                  \r\n\r\n', - 'dimension': '4.3 x 2.6 x 1.9 inches ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                                    \r\n
                                                                                      \r\n
                                                                                    • 8-megapixel CCD captures enough detail for photo-quality 16 x 22-inch prints
                                                                                    • \r\n
                                                                                    • 4x optical zoom; 2.5-inch vari-angle LCD display
                                                                                    • \r\n
                                                                                    • ISO range up to ISO 800 for less blur in low light while hand-holding
                                                                                    • \r\n
                                                                                    • 3:2 guide masks LCD to display 4 x 6-inch print size; 16:9 format option for still images
                                                                                    • \r\n
                                                                                    • Stores images on SD cards; powered by 4 AA-size batteries
                                                                                    • \r\n
                                                                                    ', - 'is_recurring': None, - 'manufacturer': '34', - 'megapixels': '90', - 'meta_description': 'Canon PowerShot A630 8MP Digital Camera with 4x Optical Zoom', - 'meta_keyword': 'canon, powershot, A630, digital, camera, optical, zoom', - 'meta_title': 'Canon PowerShot A630 8MP Digital Camera with 4x Optical Zoom', - 'minimal_price': '329.9900', - 'model': 'A630 ', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Canon PowerShot A630 8MP Digital Camera with 4x Optical Zoom', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '329.9900', - 'product_id': '47', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': 'Replacing the highly popular PowerShot A620, the PowerShot A630 features a rotating 2.5-inch vari-angle LCD, 4x optical zoom lens, and a vast array of creative shooting modes.', - 'sku': 'A630', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:58:14', - 'url_key': 'canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom', - 'url_path': 'canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (47, u'3', None, 'id')): {'categories': ['26'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:27:14', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Replacing the highly popular PowerShot A620, the PowerShot A630 features a rotating 2.5-inch vari-angle LCD, 4x optical zoom lens, and a vast array of creative shooting modes.
                                                                                    \r\n\r\nThe PowerShot A630 packs a vast array of advanced features into a remarkably compact space

                                                                                    \r\n\r\n', - 'dimension': '4.3 x 2.6 x 1.9 inches ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                                      \r\n
                                                                                        \r\n
                                                                                      • 8-megapixel CCD captures enough detail for photo-quality 16 x 22-inch prints
                                                                                      • \r\n
                                                                                      • 4x optical zoom; 2.5-inch vari-angle LCD display
                                                                                      • \r\n
                                                                                      • ISO range up to ISO 800 for less blur in low light while hand-holding
                                                                                      • \r\n
                                                                                      • 3:2 guide masks LCD to display 4 x 6-inch print size; 16:9 format option for still images
                                                                                      • \r\n
                                                                                      • Stores images on SD cards; powered by 4 AA-size batteries
                                                                                      • \r\n
                                                                                      ', - 'is_recurring': None, - 'manufacturer': '34', - 'megapixels': '90', - 'meta_description': 'Canon PowerShot A630 8MP Digital Camera with 4x Optical Zoom', - 'meta_keyword': 'canon, powershot, A630, digital, camera, optical, zoom', - 'meta_title': 'Canon PowerShot A630 8MP Digital Camera with 4x Optical Zoom', - 'minimal_price': '329.9900', - 'model': 'A630 ', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Canon PowerShot A630 8MP Digital Camera with 4x Optical Zoom', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '329.9900', - 'product_id': '47', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': 'Replacing the highly popular PowerShot A620, the PowerShot A630 features a rotating 2.5-inch vari-angle LCD, 4x optical zoom lens, and a vast array of creative shooting modes.', - 'sku': 'A630', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:58:14', - 'url_key': 'canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom', - 'url_path': 'canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (48, None, None, 'id')): {'categories': ['26'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:32:20', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Small on size. Big on value. Kodak's newest C-Series digital camera, the C530, sports awesome features--such as 5.0-megapixel CCD resolution, on-camera image cropping, and an on-camera Share button--at a very affordable price.", - 'dimension': ' 4 x 6 x 9 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                                        \r\n
                                                                                          \r\n\r\n
                                                                                        • 5.0-megapixel CCD captures enough detail for photo-quality 13 x 17-inch prints
                                                                                        • \r\n
                                                                                        • 1.5-inch LCD display
                                                                                        • \r\n
                                                                                        • Continuous QVGA video
                                                                                        • \r\n
                                                                                        • Auto scene mode and three color modes; in-camera cropping
                                                                                        • \r\n
                                                                                        • Powered by AA size batteries; stores images on SD memory cards (includes 16 MB internal memory)
                                                                                        • \r\n
                                                                                        ', - 'is_recurring': None, - 'manufacturer': '31', - 'megapixels': '93', - 'meta_description': 'Kodak EasyShare C530 5MP Digital Camera', - 'meta_keyword': 'kodak, eayshare, c530, 5MP, digital, camera', - 'meta_title': 'Kodak EasyShare C530 5MP Digital Camera', - 'minimal_price': '199.9900', - 'model': 'C530 ', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Kodak EasyShare C530 5MP Digital Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '48', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': "Small on size. Big on value. Kodak's newest C-Series digital camera, the C530, sports awesome features", - 'sku': 'C530', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:58:41', - 'url_key': 'kodak-easyshare-c530-5mp-digital-camera', - 'url_path': 'kodak-easyshare-c530-5mp-digital-camera.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (48, u'2', None, 'id')): {'categories': ['26'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:32:20', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Small on size. Big on value. Kodak's newest C-Series digital camera, the C530, sports awesome features--such as 5.0-megapixel CCD resolution, on-camera image cropping, and an on-camera Share button--at a very affordable price.", - 'dimension': ' 4 x 6 x 9 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                                          \r\n
                                                                                            \r\n\r\n
                                                                                          • 5.0-megapixel CCD captures enough detail for photo-quality 13 x 17-inch prints
                                                                                          • \r\n
                                                                                          • 1.5-inch LCD display
                                                                                          • \r\n
                                                                                          • Continuous QVGA video
                                                                                          • \r\n
                                                                                          • Auto scene mode and three color modes; in-camera cropping
                                                                                          • \r\n
                                                                                          • Powered by AA size batteries; stores images on SD memory cards (includes 16 MB internal memory)
                                                                                          • \r\n
                                                                                          ', - 'is_recurring': None, - 'manufacturer': '31', - 'megapixels': '93', - 'meta_description': 'Kodak EasyShare C530 5MP Digital Camera', - 'meta_keyword': 'kodak, eayshare, c530, 5MP, digital, camera', - 'meta_title': 'Kodak EasyShare C530 5MP Digital Camera', - 'minimal_price': '199.9900', - 'model': 'C530 ', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Kodak EasyShare C530 5MP Digital Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '48', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': "Small on size. Big on value. Kodak's newest C-Series digital camera, the C530, sports awesome features", - 'sku': 'C530', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:58:41', - 'url_key': 'kodak-easyshare-c530-5mp-digital-camera', - 'url_path': 'kodak-easyshare-c530-5mp-digital-camera.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (48, u'3', None, 'id')): {'categories': ['26'], - 'color': '23', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 13:32:20', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Small on size. Big on value. Kodak's newest C-Series digital camera, the C530, sports awesome features--such as 5.0-megapixel CCD resolution, on-camera image cropping, and an on-camera Share button--at a very affordable price.", - 'dimension': ' 4 x 6 x 9 inches', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '
                                                                                            \r\n
                                                                                              \r\n\r\n
                                                                                            • 5.0-megapixel CCD captures enough detail for photo-quality 13 x 17-inch prints
                                                                                            • \r\n
                                                                                            • 1.5-inch LCD display
                                                                                            • \r\n
                                                                                            • Continuous QVGA video
                                                                                            • \r\n
                                                                                            • Auto scene mode and three color modes; in-camera cropping
                                                                                            • \r\n
                                                                                            • Powered by AA size batteries; stores images on SD memory cards (includes 16 MB internal memory)
                                                                                            • \r\n
                                                                                            ', - 'is_recurring': None, - 'manufacturer': '31', - 'megapixels': '93', - 'meta_description': 'Kodak EasyShare C530 5MP Digital Camera', - 'meta_keyword': 'kodak, eayshare, c530, 5MP, digital, camera', - 'meta_title': 'Kodak EasyShare C530 5MP Digital Camera', - 'minimal_price': '199.9900', - 'model': 'C530 ', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Kodak EasyShare C530 5MP Digital Camera', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '48', - 'recurring_profile': None, - 'required_options': '0', - 'set': '44', - 'short_description': "Small on size. Big on value. Kodak's newest C-Series digital camera, the C530, sports awesome features", - 'sku': 'C530', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:58:41', - 'url_key': 'kodak-easyshare-c530-5mp-digital-camera', - 'url_path': 'kodak-easyshare-c530-5mp-digital-camera.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (49, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '49', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:50', - 'url_key': 'anashria-womens-premier-leather-sandal-9', - 'url_path': 'anashria-womens-premier-leather-sandal-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (49, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '49', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:50', - 'url_key': 'anashria-womens-premier-leather-sandal-9', - 'url_path': 'anashria-womens-premier-leather-sandal-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (49, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '49', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:50', - 'url_key': 'anashria-womens-premier-leather-sandal-9', - 'url_path': 'anashria-womens-premier-leather-sandal-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (51, None, None, 'id')): {'categories': ['22'], - 'color': '26', - 'cost': '50.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Italy', - 'created_at': '2007-08-28 16:25:46', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'The Magento ottoman will impress with its style while it delivers on quality. This piece of living room furniture is built to last with durable solid wood framing, generous padding and plush stain-resistant microfiber upholstery.', - 'dimension': '', - 'enable_googlecheckout': None, - 'finish': 'Microfiber', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ottoman', - 'meta_keyword': 'Ottoman', - 'meta_title': 'Ottoman', - 'minimal_price': '299.9900', - 'model': 'magotto', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ottoman', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '299.9900', - 'product_id': '51', - 'recurring_profile': None, - 'required_options': '0', - 'room': '72', - 'set': '42', - 'short_description': 'With durable solid wood framing, generous padding and plush stain-resistant microfiber upholstery.', - 'sku': '1111', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:59:04', - 'url_key': 'ottoman', - 'url_path': 'ottoman.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '20.0000'}, - ('ol_catalog_product.info', (51, u'2', None, 'id')): {'categories': ['22'], - 'color': '26', - 'cost': '50.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Italy', - 'created_at': '2007-08-28 16:25:46', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'The Magento ottoman will impress with its style while it delivers on quality. This piece of living room furniture is built to last with durable solid wood framing, generous padding and plush stain-resistant microfiber upholstery.', - 'dimension': '', - 'enable_googlecheckout': None, - 'finish': 'Microfiber', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ottoman', - 'meta_keyword': 'Ottoman', - 'meta_title': 'Ottoman', - 'minimal_price': '299.9900', - 'model': 'magotto', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ottoman', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '299.9900', - 'product_id': '51', - 'recurring_profile': None, - 'required_options': '0', - 'room': '72', - 'set': '42', - 'short_description': 'With durable solid wood framing, generous padding and plush stain-resistant microfiber upholstery.', - 'sku': '1111', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:59:04', - 'url_key': 'ottoman', - 'url_path': 'ottoman.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '20.0000'}, - ('ol_catalog_product.info', (51, u'3', None, 'id')): {'categories': ['22'], - 'color': '26', - 'cost': '50.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Italy', - 'created_at': '2007-08-28 16:25:46', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'The Magento ottoman will impress with its style while it delivers on quality. This piece of living room furniture is built to last with durable solid wood framing, generous padding and plush stain-resistant microfiber upholstery.', - 'dimension': '', - 'enable_googlecheckout': None, - 'finish': 'Microfiber', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ottoman', - 'meta_keyword': 'Ottoman', - 'meta_title': 'Ottoman', - 'minimal_price': '299.9900', - 'model': 'magotto', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ottoman', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '299.9900', - 'product_id': '51', - 'recurring_profile': None, - 'required_options': '0', - 'room': '72', - 'set': '42', - 'short_description': 'With durable solid wood framing, generous padding and plush stain-resistant microfiber upholstery.', - 'sku': '1111', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:59:04', - 'url_key': 'ottoman', - 'url_path': 'ottoman.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '20.0000'}, - ('ol_catalog_product.info', (52, None, None, 'id')): {'categories': ['22'], - 'color': '26', - 'cost': '50.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Italy', - 'created_at': '2007-08-28 16:29:24', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'This Magento chair features a fun, futuristic design, with fluid curves and gentle angles that follow the shape of the body to enhance ultimate relaxation. It combines a hint of nostalgia with the up-to-date sensibility and function of modern chairs. It is in soft, velvety microfiber.', - 'dimension': '', - 'enable_googlecheckout': None, - 'finish': 'Microfiber', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Chair', - 'meta_keyword': 'Chair', - 'meta_title': 'Chair', - 'minimal_price': '129.9900', - 'model': '1112', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Chair', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '129.9900', - 'product_id': '52', - 'recurring_profile': None, - 'required_options': '0', - 'room': '72', - 'set': '42', - 'short_description': 'Combining a hint of nostalgia with the up-to-date sensibility and function of modern chairs. It is in soft, velvety microfiber.', - 'sku': '1112', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:59:17', - 'url_key': 'chair', - 'url_path': 'chair.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '50.0000'}, - ('ol_catalog_product.info', (52, u'2', None, 'id')): {'categories': ['22'], - 'color': '26', - 'cost': '50.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Italy', - 'created_at': '2007-08-28 16:29:24', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'This Magento chair features a fun, futuristic design, with fluid curves and gentle angles that follow the shape of the body to enhance ultimate relaxation. It combines a hint of nostalgia with the up-to-date sensibility and function of modern chairs. It is in soft, velvety microfiber.', - 'dimension': '', - 'enable_googlecheckout': None, - 'finish': 'Microfiber', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Chair', - 'meta_keyword': 'Chair', - 'meta_title': 'Chair', - 'minimal_price': '129.9900', - 'model': '1112', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Chair', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '129.9900', - 'product_id': '52', - 'recurring_profile': None, - 'required_options': '0', - 'room': '72', - 'set': '42', - 'short_description': 'Combining a hint of nostalgia with the up-to-date sensibility and function of modern chairs. It is in soft, velvety microfiber.', - 'sku': '1112', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:59:17', - 'url_key': 'chair', - 'url_path': 'chair.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '50.0000'}, - ('ol_catalog_product.info', (52, u'3', None, 'id')): {'categories': ['22'], - 'color': '26', - 'cost': '50.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Italy', - 'created_at': '2007-08-28 16:29:24', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'This Magento chair features a fun, futuristic design, with fluid curves and gentle angles that follow the shape of the body to enhance ultimate relaxation. It combines a hint of nostalgia with the up-to-date sensibility and function of modern chairs. It is in soft, velvety microfiber.', - 'dimension': '', - 'enable_googlecheckout': None, - 'finish': 'Microfiber', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Chair', - 'meta_keyword': 'Chair', - 'meta_title': 'Chair', - 'minimal_price': '129.9900', - 'model': '1112', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Chair', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '129.9900', - 'product_id': '52', - 'recurring_profile': None, - 'required_options': '0', - 'room': '72', - 'set': '42', - 'short_description': 'Combining a hint of nostalgia with the up-to-date sensibility and function of modern chairs. It is in soft, velvety microfiber.', - 'sku': '1112', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:59:17', - 'url_key': 'chair', - 'url_path': 'chair.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '50.0000'}, - ('ol_catalog_product.info', (53, None, None, 'id')): {'categories': ['22'], - 'color': '26', - 'cost': '200.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Italy', - 'created_at': '2007-08-28 16:32:24', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Inspired by the classic camelback sofa, Magento offers comfort and style in a low maintenance package. For a sleek, simple and stylish piece, look no further than the Magento sofa - or sofabed!', - 'dimension': '', - 'enable_googlecheckout': None, - 'finish': 'Microfiber', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Couch', - 'meta_keyword': 'Couch', - 'meta_title': 'Couch', - 'minimal_price': '599.9900', - 'model': '1113', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Couch', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '599.9900', - 'product_id': '53', - 'recurring_profile': None, - 'required_options': '0', - 'room': '72', - 'set': '42', - 'short_description': 'For a sleek, simple and stylish piece, look no further than the Magento sofa - or sofabed!', - 'sku': '1113', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:59:40', - 'url_key': 'couch', - 'url_path': 'couch.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '200.0000'}, - ('ol_catalog_product.info', (53, u'2', None, 'id')): {'categories': ['22'], - 'color': '26', - 'cost': '200.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Italy', - 'created_at': '2007-08-28 16:32:24', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Inspired by the classic camelback sofa, Magento offers comfort and style in a low maintenance package. For a sleek, simple and stylish piece, look no further than the Magento sofa - or sofabed!', - 'dimension': '', - 'enable_googlecheckout': None, - 'finish': 'Microfiber', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Couch', - 'meta_keyword': 'Couch', - 'meta_title': 'Couch', - 'minimal_price': '599.9900', - 'model': '1113', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Couch', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '599.9900', - 'product_id': '53', - 'recurring_profile': None, - 'required_options': '0', - 'room': '72', - 'set': '42', - 'short_description': 'For a sleek, simple and stylish piece, look no further than the Magento sofa - or sofabed!', - 'sku': '1113', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:59:40', - 'url_key': 'couch', - 'url_path': 'couch.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '200.0000'}, - ('ol_catalog_product.info', (53, u'3', None, 'id')): {'categories': ['22'], - 'color': '26', - 'cost': '200.0000', - 'country_of_manufacture': None, - 'country_orgin': 'Italy', - 'created_at': '2007-08-28 16:32:24', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Inspired by the classic camelback sofa, Magento offers comfort and style in a low maintenance package. For a sleek, simple and stylish piece, look no further than the Magento sofa - or sofabed!', - 'dimension': '', - 'enable_googlecheckout': None, - 'finish': 'Microfiber', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Couch', - 'meta_keyword': 'Couch', - 'meta_title': 'Couch', - 'minimal_price': '599.9900', - 'model': '1113', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Couch', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '599.9900', - 'product_id': '53', - 'recurring_profile': None, - 'required_options': '0', - 'room': '72', - 'set': '42', - 'short_description': 'For a sleek, simple and stylish piece, look no further than the Magento sofa - or sofabed!', - 'sku': '1113', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 14:59:40', - 'url_key': 'couch', - 'url_path': 'couch.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '200.0000'}, - ('ol_catalog_product.info', (54, None, None, 'id')): {'categories': ['22'], - 'country_of_manufacture': None, - 'country_orgin': 'Italy', - 'created_at': '2007-08-28 16:38:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The perfect furniture set for the living room! Love red? You'll love these pieces of handmade modern furniture!", - 'dimension': '', - 'enable_googlecheckout': None, - 'finish': 'Microfiber', - 'gift_message_available': '', - 'has_options': '0', - 'image_label': None, - 'meta_description': 'Magento Red Furniture Set', - 'meta_keyword': 'Magento, Red, Furniture, Set, ottoman, couch, chair', - 'meta_title': 'Magento Red Furniture Set', - 'model': 'RFS', - 'name': 'Magento Red Furniture Set', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'product_id': '54', - 'required_options': '0', - 'room': '72', - 'set': '42', - 'short_description': "Love red? You'll love these pieces of handmade modern furniture!", - 'sku': '1114', - 'small_image_label': None, - 'status': '1', - 'thumbnail_label': None, - 'type': 'grouped', - 'type_id': 'grouped', - 'updated_at': '2008-08-08 15:00:22', - 'url_key': 'magento-red-furniture-set', - 'url_path': 'magento-red-furniture-set.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (74, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '74', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 13:19:48', - 'url_key': 'anashria-womens-premier-leather-sandal-3', - 'url_path': 'anashria-womens-premier-leather-sandal-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (74, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '74', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 13:19:48', - 'url_key': 'anashria-womens-premier-leather-sandal-3', - 'url_path': 'anashria-womens-premier-leather-sandal-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (74, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '74', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '46', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_3', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 13:19:48', - 'url_key': 'anashria-womens-premier-leather-sandal-3', - 'url_path': 'anashria-womens-premier-leather-sandal-3.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (75, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '75', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:18', - 'url_key': 'anashria-womens-premier-leather-sandal-4', - 'url_path': 'anashria-womens-premier-leather-sandal-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (75, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '75', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:18', - 'url_key': 'anashria-womens-premier-leather-sandal-4', - 'url_path': 'anashria-womens-premier-leather-sandal-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (75, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '75', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:18', - 'url_key': 'anashria-womens-premier-leather-sandal-4', - 'url_path': 'anashria-womens-premier-leather-sandal-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (79, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '79', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:11', - 'url_key': 'anashria-womens-premier-leather-sandal-5', - 'url_path': 'anashria-womens-premier-leather-sandal-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (79, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '79', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:11', - 'url_key': 'anashria-womens-premier-leather-sandal-5', - 'url_path': 'anashria-womens-premier-leather-sandal-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (79, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '79', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:11', - 'url_key': 'anashria-womens-premier-leather-sandal-5', - 'url_path': 'anashria-womens-premier-leather-sandal-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (80, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '80', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:25', - 'url_key': 'anashria-womens-premier-leather-sandal-6', - 'url_path': 'anashria-womens-premier-leather-sandal-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (80, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '80', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:25', - 'url_key': 'anashria-womens-premier-leather-sandal-6', - 'url_path': 'anashria-womens-premier-leather-sandal-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (80, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '80', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:25', - 'url_key': 'anashria-womens-premier-leather-sandal-6', - 'url_path': 'anashria-womens-premier-leather-sandal-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (81, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '81', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '42', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_7', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:32', - 'url_key': 'anashria-womens-premier-leather-sandal-7', - 'url_path': 'anashria-womens-premier-leather-sandal-7.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (81, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '81', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '42', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_7', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:32', - 'url_key': 'anashria-womens-premier-leather-sandal-7', - 'url_path': 'anashria-womens-premier-leather-sandal-7.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (81, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '81', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '42', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_7', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:32', - 'url_key': 'anashria-womens-premier-leather-sandal-7', - 'url_path': 'anashria-womens-premier-leather-sandal-7.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (82, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '82', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:44', - 'url_key': 'anashria-womens-premier-leather-sandal-8', - 'url_path': 'anashria-womens-premier-leather-sandal-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (82, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '82', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:44', - 'url_key': 'anashria-womens-premier-leather-sandal-8', - 'url_path': 'anashria-womens-premier-leather-sandal-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (82, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '10.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-28 15:09:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'Womens Premier Leather Single Layer Narrow Strap - ', - 'is_recurring': None, - 'manufacturer': '102', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '82', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '97', - 'short_description': 'Womens Premier Leather Single Layer Narrow Strap - NEW Colors Available - Womens Style - Genuine Top Grain Premier Leather - Rich Color Tones - Straps lined with 2000 lb test nylon - Guaranteed for the Life of the Sole - Non-slip sole - Note: Rainbow is in the process of unveiling a new toe post tag that is much smaller than the original tag.', - 'sku': 'ana_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:07:44', - 'url_key': 'anashria-womens-premier-leather-sandal-8', - 'url_path': 'anashria-womens-premier-leather-sandal-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (83, None, None, 'id')): {'categories': ['16', - '17'], - 'country_of_manufacture': None, - 'created_at': '2007-08-29 10:32:52', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'in_depth': '
                                                                                              \r\n
                                                                                                \r\n
                                                                                              • Made of EVA foam
                                                                                              • \r\n
                                                                                              • Heel strap keeps shoe on foot
                                                                                              • \r\n
                                                                                              • Non-marking, slip-resistant outsole
                                                                                              • \r\n
                                                                                              • Weigh just 6-10 ounces
                                                                                              • \r\n', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'cn, clogs, outdoor, shoes, sandals, comfortable', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '13.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '83', - 'required_options': '1', - 'set': '40', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-08-08 15:00:07', - 'url_key': 'cn-clogs-beach-garden-clog', - 'url_path': 'cn-clogs-beach-garden-clog.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (84, None, None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '84', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:53:37', - 'url_key': 'cn-clogs-beach-garden-clog-4', - 'url_path': 'cn-clogs-beach-garden-clog-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (84, u'2', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '84', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:53:37', - 'url_key': 'cn-clogs-beach-garden-clog-4', - 'url_path': 'cn-clogs-beach-garden-clog-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (84, u'3', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '84', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:53:37', - 'url_key': 'cn-clogs-beach-garden-clog-4', - 'url_path': 'cn-clogs-beach-garden-clog-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (85, None, None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '85', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:53:55', - 'url_key': 'cn-clogs-beach-garden-clog-5', - 'url_path': 'cn-clogs-beach-garden-clog-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (85, u'2', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '85', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:53:55', - 'url_key': 'cn-clogs-beach-garden-clog-5', - 'url_path': 'cn-clogs-beach-garden-clog-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (85, u'3', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '85', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:53:55', - 'url_key': 'cn-clogs-beach-garden-clog-5', - 'url_path': 'cn-clogs-beach-garden-clog-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (86, None, None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '86', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:53:50', - 'url_key': 'cn-clogs-beach-garden-clog-6', - 'url_path': 'cn-clogs-beach-garden-clog-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (86, u'2', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '86', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:53:50', - 'url_key': 'cn-clogs-beach-garden-clog-6', - 'url_path': 'cn-clogs-beach-garden-clog-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (86, u'3', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '86', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:53:50', - 'url_key': 'cn-clogs-beach-garden-clog-6', - 'url_path': 'cn-clogs-beach-garden-clog-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (87, None, None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '87', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '42', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_7', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:00', - 'url_key': 'cn-clogs-beach-garden-clog-7', - 'url_path': 'cn-clogs-beach-garden-clog-7.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (87, u'2', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '87', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '42', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_7', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:00', - 'url_key': 'cn-clogs-beach-garden-clog-7', - 'url_path': 'cn-clogs-beach-garden-clog-7.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (87, u'3', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '87', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '42', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_7', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:00', - 'url_key': 'cn-clogs-beach-garden-clog-7', - 'url_path': 'cn-clogs-beach-garden-clog-7.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (88, None, None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '88', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:10', - 'url_key': 'cn-clogs-beach-garden-clog-8', - 'url_path': 'cn-clogs-beach-garden-clog-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (88, u'2', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '88', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:10', - 'url_key': 'cn-clogs-beach-garden-clog-8', - 'url_path': 'cn-clogs-beach-garden-clog-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (88, u'3', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '88', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:10', - 'url_key': 'cn-clogs-beach-garden-clog-8', - 'url_path': 'cn-clogs-beach-garden-clog-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (89, None, None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '89', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:27', - 'url_key': 'cn-clogs-beach-garden-clog-9', - 'url_path': 'cn-clogs-beach-garden-clog-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (89, u'2', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '89', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:27', - 'url_key': 'cn-clogs-beach-garden-clog-9', - 'url_path': 'cn-clogs-beach-garden-clog-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (89, u'3', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '89', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:27', - 'url_key': 'cn-clogs-beach-garden-clog-9', - 'url_path': 'cn-clogs-beach-garden-clog-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (90, None, None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '90', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '39', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m10', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:36', - 'url_key': 'cn-clogs-beach-garden-clog-10', - 'url_path': 'cn-clogs-beach-garden-clog-10.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (90, u'2', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '90', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '39', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m10', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:36', - 'url_key': 'cn-clogs-beach-garden-clog-10', - 'url_path': 'cn-clogs-beach-garden-clog-10.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (90, u'3', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '90', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '39', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m10', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:36', - 'url_key': 'cn-clogs-beach-garden-clog-10', - 'url_path': 'cn-clogs-beach-garden-clog-10.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (91, None, None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '91', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '38', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m11', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:40', - 'url_key': 'cn-clogs-beach-garden-clog-11', - 'url_path': 'cn-clogs-beach-garden-clog-11.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (91, u'2', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '91', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '38', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m11', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:40', - 'url_key': 'cn-clogs-beach-garden-clog-11', - 'url_path': 'cn-clogs-beach-garden-clog-11.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (91, u'3', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '91', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '38', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m11', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:40', - 'url_key': 'cn-clogs-beach-garden-clog-11', - 'url_path': 'cn-clogs-beach-garden-clog-11.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (92, None, None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '92', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '37', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m12', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:45', - 'url_key': 'cn-clogs-beach-garden-clog-12', - 'url_path': 'cn-clogs-beach-garden-clog-12.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (92, u'2', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '92', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '37', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m12', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:45', - 'url_key': 'cn-clogs-beach-garden-clog-12', - 'url_path': 'cn-clogs-beach-garden-clog-12.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (92, u'3', None, 'id')): {'categories': ['16', - '17'], - 'color': '25', - 'cost': '1.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 18:53:19', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear. Wear them either at the beach, in your garden, at the mall or just about anywhere you would want to be comfortable.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': ' * Made of EVA foam\r\n * Heel strap keeps shoe on foot\r\n * Non-marking, slip-resistant outsole\r\n * Weigh just 6-10 ounces\r\n\r\n', - 'is_recurring': None, - 'manufacturer': '63', - 'meta_description': 'CN Clogs Beach/Garden Clog', - 'meta_keyword': 'CN Clogs Beach/Garden Clog ', - 'meta_title': 'CN Clogs Beach/Garden Clog', - 'minimal_price': '15.9900', - 'model': 'B000JI2N0I', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'CN Clogs Beach/Garden Clog', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.9900', - 'product_id': '92', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '37', - 'shoe_type': '97', - 'short_description': 'Comfortable and fun to wear these clogs are the latest trend in fashion footwear', - 'sku': 'cn_m12', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:54:45', - 'url_key': 'cn-clogs-beach-garden-clog-12', - 'url_path': 'cn-clogs-beach-garden-clog-12.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (93, None, None, 'id')): {'categories': ['16'], - 'country_of_manufacture': None, - 'created_at': '2007-08-29 11:46:47', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'in_depth': '
                                                                                                  \r\n
                                                                                                    \r\n
                                                                                                  • I.G.S.: Allows for natural foot movement from heel strike to toe-off
                                                                                                  • \r\n
                                                                                                  • DuoMax Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off
                                                                                                  • \r\n
                                                                                                  • Space Trusstic System: Allows for greater midsole deformation and more efficient foot function
                                                                                                  • \r\n
                                                                                                  • GEL Cushioning System: Provides maximum rearfoot/forefoot shock attenuation
                                                                                                  • \r\n
                                                                                                  • Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation
                                                                                                  • \r\n\r\n
                                                                                                  ', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': 'asics, gel, kayano', - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '93', - 'required_options': '1', - 'set': '40', - 'shoe_type': '53', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. ', - 'sku': 'asc', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-08-08 15:00:35', - 'url_key': 'asics-men-s-gel-kayano-xii', - 'url_path': 'asics-men-s-gel-kayano-xii.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (94, None, None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '94', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:18', - 'url_key': 'asics-men-s-gel-kayano-xii-9', - 'url_path': 'asics-men-s-gel-kayano-xii-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (94, u'2', None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '94', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:18', - 'url_key': 'asics-men-s-gel-kayano-xii-9', - 'url_path': 'asics-men-s-gel-kayano-xii-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (94, u'3', None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '94', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:18', - 'url_key': 'asics-men-s-gel-kayano-xii-9', - 'url_path': 'asics-men-s-gel-kayano-xii-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (95, None, None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '95', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '39', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_10', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:37', - 'url_key': 'asics-men-s-gel-kayano-xii-10', - 'url_path': 'asics-men-s-gel-kayano-xii-10.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (95, u'2', None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '95', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '39', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_10', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:37', - 'url_key': 'asics-men-s-gel-kayano-xii-10', - 'url_path': 'asics-men-s-gel-kayano-xii-10.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (95, u'3', None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '95', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '39', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_10', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:37', - 'url_key': 'asics-men-s-gel-kayano-xii-10', - 'url_path': 'asics-men-s-gel-kayano-xii-10.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (96, None, None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '96', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '38', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_11', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:47', - 'url_key': 'asics-men-s-gel-kayano-xii-11', - 'url_path': 'asics-men-s-gel-kayano-xii-11.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (96, u'2', None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '96', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '38', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_11', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:47', - 'url_key': 'asics-men-s-gel-kayano-xii-11', - 'url_path': 'asics-men-s-gel-kayano-xii-11.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (96, u'3', None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '96', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '38', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_11', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:47', - 'url_key': 'asics-men-s-gel-kayano-xii-11', - 'url_path': 'asics-men-s-gel-kayano-xii-11.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (97, None, None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '97', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '37', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_12', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:58', - 'url_key': 'asics-men-s-gel-kayano-xii-12', - 'url_path': 'asics-men-s-gel-kayano-xii-12.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (97, u'2', None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '97', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '37', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_12', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:58', - 'url_key': 'asics-men-s-gel-kayano-xii-12', - 'url_path': 'asics-men-s-gel-kayano-xii-12.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (97, u'3', None, 'id')): {'categories': ['16'], - 'color': '61', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:00:49', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. Solyte midsole material is lighter than standard EVA and SpEVA\xae combined with improved cushioning and durability. Impact Guidance System (I.G.S.\xae) uses linked componentry to encourage optimal gait while allowing for natural foot movement from heel strike to toe off. DuoMax\xae support system helps ensure that the shoe maintains proper support for the foot during the critical transition from heel strike to toe off. Space Trusstic\xae System creates a pocket between the Trusstic\xae System device and the midsole, allowing for greater midsole deformation and more efficient foot function. GEL\xae Cushioning System provides maximum rearfoot and forefoot shock attenuation. Wt. 12.6 oz.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': '# I.G.S.?: Allows for natural foot movement from heel strike to toe-off\r\n# DuoMax? Support System: Maintains proper support for the foot during the critical transition from heel strike to toe-off\r\n# Space Trusstic System?: Allows for greater midsole deformation and more efficient foot function\r\n# GEL? Cushioning System: Provides maximum rearfoot/forefoot shock attenuation\r\n# Biomorphic Fit Upper: Provides enhanced upper fit and comfort while limiting irritation', - 'is_recurring': None, - 'manufacturer': '64', - 'meta_description': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'meta_keyword': u"ASICS\xae Men's GEL-Kayano\xae XII ", - 'meta_title': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'minimal_price': '134.9900', - 'model': 'B000CP1M00', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '134.9900', - 'product_id': '97', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '37', - 'shoe_type': '49', - 'short_description': u'The ASICS\xae GEL-Kayano\xae XII running shoe delivers the ultimate blend of cushioning and support. Biomorphic Fit\u2122 upper offers enhanced upper fit and comfort while decreasing the potential for irritation. ', - 'sku': 'asc_12', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:23:58', - 'url_key': 'asics-men-s-gel-kayano-xii-12', - 'url_path': 'asics-men-s-gel-kayano-xii-12.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '3.0000'}, - ('ol_catalog_product.info', (98, None, None, 'id')): {'categories': ['16'], - 'country_of_manufacture': None, - 'created_at': '2007-08-29 12:09:17', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole, New York, Men's, Con-verge, Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '98', - 'required_options': '1', - 'set': '40', - 'shoe_type': '52', - 'short_description': 'Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe.', - 'sku': 'ken', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-08-08 14:29:46', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (99, None, None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '99', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:57:45', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-9', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (99, u'2', None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '99', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:57:45', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-9', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (99, u'3', None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '99', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '40', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_9', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:57:45', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-9', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-9.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (100, None, None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '100', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '39', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_10', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:56:05', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-10', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-10.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (100, u'2', None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '100', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '39', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_10', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:56:05', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-10', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-10.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (100, u'3', None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '100', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '39', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_10', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:56:05', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-10', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-10.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (101, None, None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '101', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '38', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_11', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:57:03', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-11', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-11.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (101, u'2', None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '101', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '38', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_11', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:57:03', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-11', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-11.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (101, u'3', None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '101', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '38', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_11', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:57:03', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-11', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-11.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (102, None, None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '102', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '37', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_12', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:57:40', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-12', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-12.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (102, u'2', None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '102', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '37', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_12', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:57:40', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-12', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-12.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (102, u'3', None, 'id')): {'categories': ['16'], - 'color': '24', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:27:04', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue with side elastic panels for a comfortable, secure fit. Smooth leather lining, cushioned leather topped insole. Dress midsole with a beveled edge, 1 inch capped dress heel. Flat traction outsole.', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The handsome style of the Con-Verge slip-on from Kenneth Cole New York is larger than life. This sharp shoe has a semi-polished smooth leather upper, a squared off stitched apron toe, and dual-goring for easy on/off accessibility. It also features soft leather linings, a cushioned insole, and a paneled rubber outsole for a sturdy step. The Con-Verge is a perfect companion to your business and special occasion wardrobes.', - 'is_recurring': None, - 'manufacturer': '103', - 'meta_description': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_keyword': "Kenneth Cole New York Men's Con-verge Slip-on", - 'meta_title': "Kenneth Cole New York Men's Con-verge Slip-on", - 'minimal_price': '160.9900', - 'model': 'B000IKC6AY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '160.9900', - 'product_id': '102', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '37', - 'shoe_type': '52', - 'short_description': 'High fashion and classic good looks converge in this suave slip on from Kenneth Cole. Smooth leather upper in a dress slip on style, with a stitched and covered seam moc-inspired square toe, quarter panel curved overlays and flared tongue', - 'sku': 'ken_12', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:57:40', - 'url_key': 'kenneth-cole-new-york-men-s-con-verge-slip-on-12', - 'url_path': 'kenneth-cole-new-york-men-s-con-verge-slip-on-12.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (103, None, None, 'id')): {'categories': ['17'], - 'country_of_manufacture': None, - 'created_at': '2007-08-29 12:29:46', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '103', - 'required_options': '1', - 'set': '40', - 'shoe_type': '52', - 'short_description': ' This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-08-08 15:02:24', - 'url_key': 'steven-by-steve-madden-pryme-pump', - 'url_path': 'steven-by-steve-madden-pryme-pump.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (104, None, None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '104', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:02:34', - 'url_key': 'steven-by-steve-madden-pryme-pump-5', - 'url_path': 'steven-by-steve-madden-pryme-pump-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (104, u'2', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '104', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:02:34', - 'url_key': 'steven-by-steve-madden-pryme-pump-5', - 'url_path': 'steven-by-steve-madden-pryme-pump-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (104, u'3', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '104', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:02:34', - 'url_key': 'steven-by-steve-madden-pryme-pump-5', - 'url_path': 'steven-by-steve-madden-pryme-pump-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (105, None, None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '105', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:02:56', - 'url_key': 'steven-by-steve-madden-pryme-pump-6', - 'url_path': 'steven-by-steve-madden-pryme-pump-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (105, u'2', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '105', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:02:56', - 'url_key': 'steven-by-steve-madden-pryme-pump-6', - 'url_path': 'steven-by-steve-madden-pryme-pump-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (105, u'3', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '105', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:02:56', - 'url_key': 'steven-by-steve-madden-pryme-pump-6', - 'url_path': 'steven-by-steve-madden-pryme-pump-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (106, None, None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '106', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '42', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_7', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:03:00', - 'url_key': 'steven-by-steve-madden-pryme-pump-7', - 'url_path': 'steven-by-steve-madden-pryme-pump-7.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (106, u'2', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '106', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '42', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_7', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:03:00', - 'url_key': 'steven-by-steve-madden-pryme-pump-7', - 'url_path': 'steven-by-steve-madden-pryme-pump-7.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (106, u'3', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '106', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '42', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_7', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:03:00', - 'url_key': 'steven-by-steve-madden-pryme-pump-7', - 'url_path': 'steven-by-steve-madden-pryme-pump-7.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (107, None, None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '107', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:03:06', - 'url_key': 'steven-by-steve-madden-pryme-pump-8', - 'url_path': 'steven-by-steve-madden-pryme-pump-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (107, u'2', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '107', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:03:06', - 'url_key': 'steven-by-steve-madden-pryme-pump-8', - 'url_path': 'steven-by-steve-madden-pryme-pump-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (107, u'3', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:05:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe. It also features smooth linings, a fully cushioned insole, a sexy covered stiletto heel, and a lightly textured dress leather outsole. Any way you wear the Pryme, you're certain to catch a lot of attention.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'A prime example of chic style. Patent leather upper. Round toe. 3-1/2 inch covered heel. Flex leather sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '62', - 'meta_description': 'Steven by Steve Madden Pryme Pump', - 'meta_keyword': 'Steven by Steve Madden Pryme Pump', - 'meta_title': 'Steven by Steve Madden Pryme Pump', - 'minimal_price': '69.9900', - 'model': 'B000NOGIKY', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Steven by Steve Madden Pryme Pump', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '69.9900', - 'product_id': '107', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '41', - 'shoe_type': '51', - 'short_description': 'Nothing will turn his head faster than you wearing the sexy Pryme pump from Steven by Steve Madden. This daring pump has a pretty patent leather upper with light shirring, a double stitch detail surrounding the collar, and a vampy almond shaped toe', - 'sku': 'steve_8', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:03:06', - 'url_key': 'steven-by-steve-madden-pryme-pump-8', - 'url_path': 'steven-by-steve-madden-pryme-pump-8.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (108, None, None, 'id')): {'categories': ['17'], - 'country_of_manufacture': None, - 'created_at': '2007-08-29 12:52:39', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': 'Nine West, Women, Lucero, Pump', - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '108', - 'required_options': '1', - 'set': '40', - 'shoe_type': '51', - 'short_description': 'This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-08-08 15:02:34', - 'url_key': 'nine-west-women-s-lucero-pump', - 'url_path': 'nine-west-women-s-lucero-pump.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (109, None, None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '109', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:06:49', - 'url_key': 'nine-west-women-s-lucero-pump-4', - 'url_path': 'nine-west-women-s-lucero-pump-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (109, u'2', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '109', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:06:49', - 'url_key': 'nine-west-women-s-lucero-pump-4', - 'url_path': 'nine-west-women-s-lucero-pump-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (109, u'3', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '109', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:06:49', - 'url_key': 'nine-west-women-s-lucero-pump-4', - 'url_path': 'nine-west-women-s-lucero-pump-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (110, None, None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '110', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:06:42', - 'url_key': 'nine-west-women-s-lucero-pump-5', - 'url_path': 'nine-west-women-s-lucero-pump-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (110, u'2', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '110', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:06:42', - 'url_key': 'nine-west-women-s-lucero-pump-5', - 'url_path': 'nine-west-women-s-lucero-pump-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (110, u'3', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '110', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:06:42', - 'url_key': 'nine-west-women-s-lucero-pump-5', - 'url_path': 'nine-west-women-s-lucero-pump-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (111, None, None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '111', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:07:09', - 'url_key': 'nine-west-women-s-lucero-pump-6', - 'url_path': 'nine-west-women-s-lucero-pump-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (111, u'2', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '111', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:07:09', - 'url_key': 'nine-west-women-s-lucero-pump-6', - 'url_path': 'nine-west-women-s-lucero-pump-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (111, u'3', None, 'id')): {'categories': ['17'], - 'color': '26', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:12:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp, leather linings, and a cushioned insole for long-wearing comfort. The stiletto heel radiates a subtle hint of sensuality, so sass up your jean and t-shirt look or nighttime attire with this hot pump and you'll be absolutely unforgettable.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': 'The perfect pump will suit any ensemble. Leather upper. 3-3/4 inch stacked heel. Man-made sole. Imported. ', - 'is_recurring': None, - 'manufacturer': '105', - 'meta_description': "Nine West Women's Lucero Pump", - 'meta_keyword': "Nine West Women's Lucero Pump ", - 'meta_title': "Nine West Women's Lucero Pump", - 'minimal_price': '89.9900', - 'model': 'B000LJQVF8', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': "Nine West Women's Lucero Pump", - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '89.9900', - 'product_id': '111', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '51', - 'short_description': 'The Lucero pump from Nine West may just leave him at a loss for words. This flirty pump has a leather upper, a pretty almond-shaped toe with a slight V-cut vamp', - 'sku': 'nine_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 18:07:09', - 'url_key': 'nine-west-women-s-lucero-pump-6', - 'url_path': 'nine-west-women-s-lucero-pump-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '2.0000'}, - ('ol_catalog_product.info', (112, None, None, 'id')): {'categories': ['17'], - 'country_of_manufacture': None, - 'created_at': '2007-08-29 13:17:43', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'in_depth': '
                                                                                                    \r\n
                                                                                                      \r\n
                                                                                                    • Breathable mesh fabric lining
                                                                                                    • \r\n
                                                                                                    • Cushioned Comfort Fibre System(R)
                                                                                                    • \r\n
                                                                                                    • Moisture absorbent
                                                                                                    • \r\n
                                                                                                    • Anti-bacterial insole
                                                                                                    • \r\n
                                                                                                    ', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO, Womens, Golf, Flexor, Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '112', - 'required_options': '1', - 'set': '40', - 'shoe_type': '47', - 'short_description': "With a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-08-08 15:02:49', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (113, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '113', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:28', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-4', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (113, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '113', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:28', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-4', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (113, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '113', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '45', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_4', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:28', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-4', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-4.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (114, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '114', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:37', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-5', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (114, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '114', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:37', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-5', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (114, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '114', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '44', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_5', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:37', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-5', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-5.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (115, None, None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '115', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:44', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-6', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (115, u'2', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '115', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:44', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-6', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (115, u'3', None, 'id')): {'categories': ['17'], - 'color': '59', - 'cost': '29.9900', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:21:42', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links. The contrasting embossed snakeskin panels attract interest, while the laid back lace-up style keeps things simple. And thanks to the one-year waterproof guarantee, you can trust these shoes to keep you in the game, even when conditions are less than perfect.", - 'is_recurring': None, - 'manufacturer': '104', - 'meta_description': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_keyword': 'ECCO Womens Golf Flexor Golf Shoe', - 'meta_title': 'ECCO Womens Golf Flexor Golf Shoe', - 'minimal_price': '159.9900', - 'model': 'B000NPOA1M', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '159.9900', - 'product_id': '115', - 'recurring_profile': None, - 'required_options': '0', - 'set': '40', - 'shoe_size': '43', - 'shoe_type': '47', - 'short_description': "Featuring a wide toe box and delivering optimum support, the sporty Golf Flexor golf shoe is a stylish cleat that you'll love wearing on and off the links.", - 'sku': 'ecco_6', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 01:04:44', - 'url_key': 'ecco-womens-golf-flexor-golf-shoe-6', - 'url_path': 'ecco-womens-golf-flexor-golf-shoe-6.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '4.0000'}, - ('ol_catalog_product.info', (117, None, None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:49:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_keyword': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_title': 'Coalesce: Functioning On Impatience T-Shirt', - 'minimal_price': '15.0000', - 'model': 'Impatience', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '117', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'sku': 'coal_md', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:37:23', - 'url_key': 'coalesce-functioning-on-impatience-t-shirt-medium', - 'url_path': 'coalesce-functioning-on-impatience-t-shirt-medium.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (117, u'2', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:49:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_keyword': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_title': 'Coalesce: Functioning On Impatience T-Shirt', - 'minimal_price': '15.0000', - 'model': 'Impatience', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '117', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'sku': 'coal_md', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:37:23', - 'url_key': 'coalesce-functioning-on-impatience-t-shirt-medium', - 'url_path': 'coalesce-functioning-on-impatience-t-shirt-medium.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (117, u'3', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:49:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_keyword': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_title': 'Coalesce: Functioning On Impatience T-Shirt', - 'minimal_price': '15.0000', - 'model': 'Impatience', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '117', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'sku': 'coal_md', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:37:23', - 'url_key': 'coalesce-functioning-on-impatience-t-shirt-medium', - 'url_path': 'coalesce-functioning-on-impatience-t-shirt-medium.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (118, None, None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:49:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_keyword': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_title': 'Coalesce: Functioning On Impatience T-Shirt', - 'minimal_price': '15.0000', - 'model': 'Impatience', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '118', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'sku': 'coal_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:38:30', - 'url_key': 'coalesce-functioning-on-impatience-t-shirt-large', - 'url_path': 'coalesce-functioning-on-impatience-t-shirt-large.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (118, u'2', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:49:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_keyword': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_title': 'Coalesce: Functioning On Impatience T-Shirt', - 'minimal_price': '15.0000', - 'model': 'Impatience', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '118', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'sku': 'coal_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:38:30', - 'url_key': 'coalesce-functioning-on-impatience-t-shirt-large', - 'url_path': 'coalesce-functioning-on-impatience-t-shirt-large.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (118, u'3', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:49:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_keyword': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_title': 'Coalesce: Functioning On Impatience T-Shirt', - 'minimal_price': '15.0000', - 'model': 'Impatience', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '118', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'sku': 'coal_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-31 17:38:30', - 'url_key': 'coalesce-functioning-on-impatience-t-shirt-large', - 'url_path': 'coalesce-functioning-on-impatience-t-shirt-large.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (119, None, None, 'id')): {'categories': ['4'], - 'country_of_manufacture': None, - 'created_at': '2007-08-29 15:00:05', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Comfortable preshrunk shirts. Highest Quality Printing.

                                                                                                    \r\n
                                                                                                      \r\n
                                                                                                        \r\n
                                                                                                      • 6.1 oz. 100% preshrunk heavyweight cotton
                                                                                                      • \r\n
                                                                                                      • Shoulder-to-shoulder taping
                                                                                                      • \r\n
                                                                                                      • Double-needle sleeves and bottom hem
                                                                                                      • ', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'meta_description': 'Coalesce: Functioning On Impatience T-Shirt', - 'meta_keyword': 'Coalesce, T-Shirt', - 'meta_title': 'Coalesce: Functioning On Impatience T-Shirt', - 'minimal_price': '10.0000', - 'model': 'Impatience', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '119', - 'required_options': '1', - 'set': '41', - 'short_description': '
                                                                                                          \r\n
                                                                                                            \r\n\r\n
                                                                                                          • 6.1 oz. 100% preshrunk heavyweight cotton
                                                                                                          • \r\n
                                                                                                          • Shoulder-to-shoulder taping
                                                                                                          • \r\n
                                                                                                          • Double-needle sleeves and bottom hem
                                                                                                          • \r\n
                                                                                                          ', - 'sku': 'coal_1', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-08-08 13:26:35', - 'url_key': 'coalesce-functioning-on-impatience-t-shirt', - 'url_path': 'coalesce-functioning-on-impatience-t-shirt.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (120, None, None, 'id')): {'categories': ['4'], - 'country_of_manufacture': None, - 'created_at': '2007-08-29 15:06:16', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater, Krylon, Bombear , Destroyed, Tee, t shirt', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '18.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '120', - 'required_options': '1', - 'set': '41', - 'short_description': 'Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!', - 'sku': 'ink', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [{'all_groups': '1', - 'cust_group': 32000, - 'price': '21.0000', - 'price_id': '5', - 'price_qty': '5.0000', - 'website_id': '0', - 'website_price': '21.0000'}, - {'all_groups': '1', - 'cust_group': 32000, - 'price': '20.0000', - 'price_id': '6', - 'price_qty': '10.0000', - 'website_id': '0', - 'website_price': '20.0000'}, - {'all_groups': '1', - 'cust_group': 32000, - 'price': '18.0000', - 'price_id': '7', - 'price_qty': '20.0000', - 'website_id': '0', - 'website_price': '18.0000'}], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-08-08 15:05:04', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (121, None, None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:53:06', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '22.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '121', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'sku': 'ink_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:49:36', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee-med', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (121, u'2', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:53:06', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '22.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '121', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'sku': 'ink_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:49:36', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee-med', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (121, u'3', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:53:06', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '22.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '121', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'sku': 'ink_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:49:36', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee-med', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (122, None, None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:53:06', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '22.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '122', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'sku': 'ink_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:49:19', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee-lrg', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (122, u'2', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:53:06', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '22.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '122', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'sku': 'ink_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:49:19', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee-lrg', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (122, u'3', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:53:06', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '22.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '122', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'sku': 'ink_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:49:19', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee-lrg', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('ol_catalog_product.info', (123, None, None, 'id')): {'categories': ['4'], - 'country_of_manufacture': None, - 'created_at': '2007-08-29 15:14:29', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '
                                                                                                            \r\n
                                                                                                              \r\n
                                                                                                            • 6.1 oz. 100% preshrunk heavyweight cotton
                                                                                                            • \r\n
                                                                                                            • Double-needle sleeves and bottom hem
                                                                                                            • \r\n
                                                                                                            ', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'meta_description': 'The Only Children: Paisley T-Shirt', - 'meta_keyword': 'The Only Children: Paisley T-Shirt', - 'meta_title': 'The Only Children: Paisley T-Shirt', - 'minimal_price': '10.0000', - 'model': 'paisley', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Only Children: Paisley T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '100.0000', - 'product_id': '123', - 'required_options': '0', - 'set': '41', - 'short_description': 'Printed on American Apparel Classic style 5495 California cotton T shirt. ', - 'sku': 'oc', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [{'all_groups': '1', - 'cust_group': 32000, - 'price': '90.0000', - 'price_id': '2', - 'price_qty': '5.0000', - 'website_id': '0', - 'website_price': '90.0000'}, - {'all_groups': '1', - 'cust_group': 32000, - 'price': '80.0000', - 'price_id': '3', - 'price_qty': '10.0000', - 'website_id': '0', - 'website_price': '80.0000'}, - {'all_groups': '1', - 'cust_group': 32000, - 'price': '70.0000', - 'price_id': '4', - 'price_qty': '20.0000', - 'website_id': '0', - 'website_price': '70.0000'}], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-06-24 22:59:14', - 'url_key': 'the-only-children-paisley-t-shirt', - 'url_path': 'the-only-children-paisley-t-shirt.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (124, None, None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:59:39', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Only Children: Paisley T-Shirt', - 'meta_keyword': 'The Only Children: Paisley T-Shirt', - 'meta_title': 'The Only Children: Paisley T-Shirt', - 'minimal_price': '15.0000', - 'model': 'The Only Children: Paisley T-Shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Only Children: Paisley T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '124', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California cotton T shirst. ', - 'sku': 'oc_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:47:56', - 'url_key': 'the-only-children-paisley-t-shirt-med', - 'url_path': 'the-only-children-paisley-t-shirt-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (124, u'2', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:59:39', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Only Children: Paisley T-Shirt', - 'meta_keyword': 'The Only Children: Paisley T-Shirt', - 'meta_title': 'The Only Children: Paisley T-Shirt', - 'minimal_price': '15.0000', - 'model': 'The Only Children: Paisley T-Shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Only Children: Paisley T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '124', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California cotton T shirst. ', - 'sku': 'oc_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:47:56', - 'url_key': 'the-only-children-paisley-t-shirt-med', - 'url_path': 'the-only-children-paisley-t-shirt-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (124, u'3', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:59:39', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Only Children: Paisley T-Shirt', - 'meta_keyword': 'The Only Children: Paisley T-Shirt', - 'meta_title': 'The Only Children: Paisley T-Shirt', - 'minimal_price': '15.0000', - 'model': 'The Only Children: Paisley T-Shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Only Children: Paisley T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '124', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California cotton T shirst. ', - 'sku': 'oc_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:47:56', - 'url_key': 'the-only-children-paisley-t-shirt-med', - 'url_path': 'the-only-children-paisley-t-shirt-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (125, None, None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:59:39', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Only Children: Paisley T-Shirt', - 'meta_keyword': 'The Only Children: Paisley T-Shirt', - 'meta_title': 'The Only Children: Paisley T-Shirt', - 'minimal_price': '15.0000', - 'model': 'The Only Children: Paisley T-Shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Only Children: Paisley T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '125', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': 'Printed on American Apparel Classic style 5495 California cotton T shirst. ', - 'sku': 'oc_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:48:14', - 'url_key': 'the-only-children-paisley-t-shirt-lrg', - 'url_path': 'the-only-children-paisley-t-shirt-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (125, u'2', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:59:39', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Only Children: Paisley T-Shirt', - 'meta_keyword': 'The Only Children: Paisley T-Shirt', - 'meta_title': 'The Only Children: Paisley T-Shirt', - 'minimal_price': '15.0000', - 'model': 'The Only Children: Paisley T-Shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Only Children: Paisley T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '125', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': 'Printed on American Apparel Classic style 5495 California cotton T shirst. ', - 'sku': 'oc_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:48:14', - 'url_key': 'the-only-children-paisley-t-shirt-lrg', - 'url_path': 'the-only-children-paisley-t-shirt-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (125, u'3', None, 'id')): {'categories': ['4'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:59:39', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'The Only Children: Paisley T-Shirt', - 'meta_keyword': 'The Only Children: Paisley T-Shirt', - 'meta_title': 'The Only Children: Paisley T-Shirt', - 'minimal_price': '15.0000', - 'model': 'The Only Children: Paisley T-Shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'The Only Children: Paisley T-Shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '15.0000', - 'product_id': '125', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': 'Printed on American Apparel Classic style 5495 California cotton T shirst. ', - 'sku': 'oc_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:48:14', - 'url_key': 'the-only-children-paisley-t-shirt-lrg', - 'url_path': 'the-only-children-paisley-t-shirt-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (126, None, None, 'id')): {'categories': ['4'], - 'country_of_manufacture': None, - 'created_at': '2007-08-29 15:31:56', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '
                                                                                                              \r\n
                                                                                                                6.1 oz. 100% preshrunk heavyweight cotton
                                                                                                                \r\n
                                                                                                              • Shoulder-to-shoulder taping
                                                                                                              • \r\n
                                                                                                              • Double-needle sleeves and bottom hem
                                                                                                              • \r\n
                                                                                                              ', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '9.5000', - 'model': 'zolof', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '126', - 'required_options': '1', - 'set': '41', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [{'all_groups': '1', - 'cust_group': 32000, - 'price': '12.5000', - 'price_id': '8', - 'price_qty': '5.0000', - 'website_id': '0', - 'website_price': '12.5000'}, - {'all_groups': '1', - 'cust_group': 32000, - 'price': '11.5000', - 'price_id': '9', - 'price_qty': '10.0000', - 'website_id': '0', - 'website_price': '11.5000'}, - {'all_groups': '1', - 'cust_group': 32000, - 'price': '9.5000', - 'price_id': '10', - 'price_qty': '20.0000', - 'website_id': '0', - 'website_price': '9.5000'}], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-08-08 15:05:22', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (127, None, None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '127', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_g_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:40:33', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-sm', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (127, u'2', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '127', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_g_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:40:33', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-sm', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (127, u'3', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '127', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '100', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_g_sm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:40:33', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-sm', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-sm.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (128, None, None, 'id')): {'categories': ['4'], - 'color': '26', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '128', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_r_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:41:39', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-med', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (128, u'2', None, 'id')): {'categories': ['4'], - 'color': '26', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '128', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_r_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:41:39', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-med', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (128, u'3', None, 'id')): {'categories': ['4'], - 'color': '26', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '128', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_r_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:41:39', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-med', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (129, None, None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '129', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_g_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:40:59', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-med', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (129, u'2', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '129', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_g_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:40:59', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-med', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (129, u'3', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '129', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_g_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:40:59', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-med', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (130, None, None, 'id')): {'categories': ['4'], - 'color': '26', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '130', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_r_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:40:28', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-lrg', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (130, u'2', None, 'id')): {'categories': ['4'], - 'color': '26', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '130', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_r_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:40:28', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-lrg', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (130, u'3', None, 'id')): {'categories': ['4'], - 'color': '26', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '130', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_r_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:40:28', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-lrg', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-r-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (131, None, None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '131', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_g_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:41:10', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-lrg', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (131, u'2', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '131', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_g_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:41:10', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-lrg', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (131, u'3', None, 'id')): {'categories': ['4'], - 'color': '22', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 20:02:08', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '131', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_g_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:41:10', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-lrg', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-g-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (132, None, None, 'id')): {'categories': ['25'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2007-08-29 19:53:55', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Sturdy, lightweight tripods are designed to meet the needs of amateur and professional photographers and videographers.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': '99.0000', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'SLR Camera Tripod', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.0000', - 'product_id': '132', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'Sturdy, lightweight tripods are designed to meet the needs of amateur and professional photographers and videographers.', - 'sku': 'ac674', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:05:45', - 'url_key': 'slr-camera-tripod', - 'url_path': 'slr-camera-tripod.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '42.0000'}, - ('ol_catalog_product.info', (132, u'2', None, 'id')): {'categories': ['25'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2007-08-29 19:53:55', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Sturdy, lightweight tripods are designed to meet the needs of amateur and professional photographers and videographers.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': '99.0000', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'SLR Camera Tripod', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.0000', - 'product_id': '132', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'Sturdy, lightweight tripods are designed to meet the needs of amateur and professional photographers and videographers.', - 'sku': 'ac674', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:05:45', - 'url_key': 'slr-camera-tripod', - 'url_path': 'slr-camera-tripod.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '42.0000'}, - ('ol_catalog_product.info', (132, u'3', None, 'id')): {'categories': ['25'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2007-08-29 19:53:55', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Sturdy, lightweight tripods are designed to meet the needs of amateur and professional photographers and videographers.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': '99.0000', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'SLR Camera Tripod', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.0000', - 'product_id': '132', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'Sturdy, lightweight tripods are designed to meet the needs of amateur and professional photographers and videographers.', - 'sku': 'ac674', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:05:45', - 'url_key': 'slr-camera-tripod', - 'url_path': 'slr-camera-tripod.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '42.0000'}, - ('ol_catalog_product.info', (133, None, None, 'id')): {'categories': ['25'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2007-08-29 19:56:27', - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'description': 'A stylish digital camera demands stylish protection. This leather carrying case will defend your camera from the dings and scratches of travel and everyday use while looking smart all the time.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': None, - 'meta_keyword': None, - 'meta_title': None, - 'minimal_price': '34.0000', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Universal Camera Case', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '34.0000', - 'product_id': '133', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'A stylish digital camera demands stylish protection. This leather carrying case will defend your camera from the dings and scratches of travel and everyday use while looking smart all the time.', - 'sku': 'ac9003', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-28 01:57:22', - 'url_key': 'universal-camera-case', - 'url_path': 'universal-camera-case.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': None}, - ('ol_catalog_product.info', (133, u'2', None, 'id')): {'categories': ['25'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2007-08-29 19:56:27', - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'description': 'A stylish digital camera demands stylish protection. This leather carrying case will defend your camera from the dings and scratches of travel and everyday use while looking smart all the time.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': None, - 'meta_keyword': None, - 'meta_title': None, - 'minimal_price': '34.0000', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Universal Camera Case', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '34.0000', - 'product_id': '133', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'A stylish digital camera demands stylish protection. This leather carrying case will defend your camera from the dings and scratches of travel and everyday use while looking smart all the time.', - 'sku': 'ac9003', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-28 01:57:22', - 'url_key': 'universal-camera-case', - 'url_path': 'universal-camera-case.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': None}, - ('ol_catalog_product.info', (133, u'3', None, 'id')): {'categories': ['25'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2007-08-29 19:56:27', - 'custom_design': None, - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': None, - 'description': 'A stylish digital camera demands stylish protection. This leather carrying case will defend your camera from the dings and scratches of travel and everyday use while looking smart all the time.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': None, - 'meta_keyword': None, - 'meta_title': None, - 'minimal_price': '34.0000', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Universal Camera Case', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '34.0000', - 'product_id': '133', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'A stylish digital camera demands stylish protection. This leather carrying case will defend your camera from the dings and scratches of travel and everyday use while looking smart all the time.', - 'sku': 'ac9003', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-28 01:57:22', - 'url_key': 'universal-camera-case', - 'url_path': 'universal-camera-case.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': None}, - ('ol_catalog_product.info', (134, None, None, 'id')): {'categories': ['25'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2007-08-29 19:59:29', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Features foldable Flat Pin for Easy Storage/ Slim/ Lightweight Design and Smart Charging LED Indicator.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': '19.0000', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Universal Camera Charger', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '19.0000', - 'product_id': '134', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'Features foldable Flat Pin for Easy Storage/ Slim/ Lightweight Design and Smart Charging LED Indicator.', - 'sku': 'ac-66332', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-28 01:57:16', - 'url_key': 'universal-camera-charger', - 'url_path': 'universal-camera-charger.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '5.0000'}, - ('ol_catalog_product.info', (134, u'2', None, 'id')): {'categories': ['25'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2007-08-29 19:59:29', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Features foldable Flat Pin for Easy Storage/ Slim/ Lightweight Design and Smart Charging LED Indicator.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': '19.0000', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Universal Camera Charger', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '19.0000', - 'product_id': '134', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'Features foldable Flat Pin for Easy Storage/ Slim/ Lightweight Design and Smart Charging LED Indicator.', - 'sku': 'ac-66332', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-28 01:57:16', - 'url_key': 'universal-camera-charger', - 'url_path': 'universal-camera-charger.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '5.0000'}, - ('ol_catalog_product.info', (134, u'3', None, 'id')): {'categories': ['25'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2007-08-29 19:59:29', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Features foldable Flat Pin for Easy Storage/ Slim/ Lightweight Design and Smart Charging LED Indicator.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': '19.0000', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Universal Camera Charger', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '19.0000', - 'product_id': '134', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'Features foldable Flat Pin for Easy Storage/ Slim/ Lightweight Design and Smart Charging LED Indicator.', - 'sku': 'ac-66332', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-06-28 01:57:16', - 'url_key': 'universal-camera-charger', - 'url_path': 'universal-camera-charger.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '5.0000'}, - ('ol_catalog_product.info', (135, None, None, 'id')): {'categories': ['17'], - 'country_of_manufacture': None, - 'created_at': '2007-08-30 11:22:53', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Smooth kidskin upper in a dress platform wedge t-strap sandal style, with a round open toe, front and ankle adjustable buckles and tonal stitching accents. Ankle buckle features elastic panel. Smooth faux leather lining, cushioning faux leather and fabric topped insole. 1 inch matching leather and fabric wrapped midsole.', - 'enable_googlecheckout': None, - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'in_depth': '
                                                                                                                \r\n
                                                                                                                  \r\n
                                                                                                                • Womens Style
                                                                                                                • \r\n
                                                                                                                • Genuine Top Grain Premier Leather
                                                                                                                • \r\n
                                                                                                                • Rich Color Tones
                                                                                                                • \r\n
                                                                                                                • Straps lined with 2000 lb test nylon
                                                                                                                • \r\n
                                                                                                                • Guaranteed for the Life of the Sole - Non-slip sole
                                                                                                                • \r\n
                                                                                                                ', - 'meta_description': 'Anashria Womens Premier Leather Sandal', - 'meta_keyword': 'womens, sandal, leather, anashria, ', - 'meta_title': 'Anashria Womens Premier Leather Sandal', - 'minimal_price': '41.9500', - 'model': 'B000KJ43SG!', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container1', - 'page_layout': None, - 'price': '41.9500', - 'product_id': '135', - 'required_options': '1', - 'set': '40', - 'shoe_type': '97', - 'short_description': 'Buckle embellished contrasting straps adorn both the heel and canvas covered wedge of this t-strap sandal to make it a truly unique addition to your wardrobe', - 'sku': 'ana', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'configurable', - 'type_id': 'configurable', - 'updated_at': '2008-08-08 15:06:02', - 'url_key': 'anashria-womens-premier-leather-sandal', - 'url_path': 'anashria-womens-premier-leather-sandal.html', - 'visibility': '4', - 'websites': ['1']}, - ('ol_catalog_product.info', (137, None, None, 'id')): {'categories': [], - 'color': '24', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-10-04 07:46:58', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '137', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_b_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '2', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:41:29', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-b-med', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-b-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (137, u'2', None, 'id')): {'categories': [], - 'color': '24', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-10-04 07:46:58', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '137', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_b_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '2', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:41:29', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-b-med', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-b-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (137, u'3', None, 'id')): {'categories': [], - 'color': '24', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-10-04 07:46:58', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '# 6.1 oz. 100% preshrunk heavyweight cotton \r\n# Shoulder-to-shoulder taping\r\n# Double-needle sleeves and bottom hem', - 'enable_googlecheckout': None, - 'gender': '36', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_keyword': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'meta_title': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'minimal_price': '13.5000', - 'model': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '13.5000', - 'product_id': '137', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '99', - 'short_description': 'Printed on American Apparel Classic style 5495 California t-shirts. ', - 'sku': 'zol_b_med', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '2', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 00:41:29', - 'url_key': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-b-med', - 'url_path': 'zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-b-med.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.4400'}, - ('ol_catalog_product.info', (138, None, None, 'id')): {'categories': ['32'], - 'color': '24', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 00:52:03', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "This superb, multi-functional Aspire X-Cruiser mid tower case is designed to follow Intel's recommendations to achieve the highest level of thermal performance. This gorgeous case outperforms most of the expensive chassis in the market, boasts an abundance of innovative features, yet carries a very affordable price tag. The Aspire X-Cruiser is fully loaded with everything you could possibly imagine that a great gaming case could have. With a built-in air duct on the side panel to funnel cool air towards the CPU, the fan-less X-Cruiser is specially designed to bring out the best performance in systems based on high-end processors.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Apevia Black X-Cruiser Case ATX Mid-Tower Case (Default)', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '150.0000', - 'product_id': '138', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'This magnificent new case features 2 x 80mm built-in fans with space for 2 optional fans. The Aspire X-Cruiser features front temperature gauge, front fan speed controller and gauge, and front volume controller and gauge. It also features USB2.0, Firewire and audio ports. The superior cooling solution that X-Cruiser delivers can only be found in very few of the expensive chassis in the market.', - 'sku': 'apevia-black', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 13:36:29', - 'url_key': 'apevia-black-x-cruiser-case-atx-mid-tower-case', - 'url_path': 'apevia-black-x-cruiser-case-atx-mid-tower-case.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.0000'}, - ('ol_catalog_product.info', (138, u'2', None, 'id')): {'categories': ['32'], - 'color': '24', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 00:52:03', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "This superb, multi-functional Aspire X-Cruiser mid tower case is designed to follow Intel's recommendations to achieve the highest level of thermal performance. This gorgeous case outperforms most of the expensive chassis in the market, boasts an abundance of innovative features, yet carries a very affordable price tag. The Aspire X-Cruiser is fully loaded with everything you could possibly imagine that a great gaming case could have. With a built-in air duct on the side panel to funnel cool air towards the CPU, the fan-less X-Cruiser is specially designed to bring out the best performance in systems based on high-end processors.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Apevia Black X-Cruiser Case ATX Mid-Tower Case (Default)', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '150.0000', - 'product_id': '138', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'This magnificent new case features 2 x 80mm built-in fans with space for 2 optional fans. The Aspire X-Cruiser features front temperature gauge, front fan speed controller and gauge, and front volume controller and gauge. It also features USB2.0, Firewire and audio ports. The superior cooling solution that X-Cruiser delivers can only be found in very few of the expensive chassis in the market.', - 'sku': 'apevia-black', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 13:36:29', - 'url_key': 'apevia-black-x-cruiser-case-atx-mid-tower-case', - 'url_path': 'apevia-black-x-cruiser-case-atx-mid-tower-case.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.0000'}, - ('ol_catalog_product.info', (138, u'3', None, 'id')): {'categories': ['32'], - 'color': '24', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 00:52:03', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "This superb, multi-functional Aspire X-Cruiser mid tower case is designed to follow Intel's recommendations to achieve the highest level of thermal performance. This gorgeous case outperforms most of the expensive chassis in the market, boasts an abundance of innovative features, yet carries a very affordable price tag. The Aspire X-Cruiser is fully loaded with everything you could possibly imagine that a great gaming case could have. With a built-in air duct on the side panel to funnel cool air towards the CPU, the fan-less X-Cruiser is specially designed to bring out the best performance in systems based on high-end processors.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Apevia Black X-Cruiser Case ATX Mid-Tower Case (Default)', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '150.0000', - 'product_id': '138', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'This magnificent new case features 2 x 80mm built-in fans with space for 2 optional fans. The Aspire X-Cruiser features front temperature gauge, front fan speed controller and gauge, and front volume controller and gauge. It also features USB2.0, Firewire and audio ports. The superior cooling solution that X-Cruiser delivers can only be found in very few of the expensive chassis in the market.', - 'sku': 'apevia-black', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 13:36:29', - 'url_key': 'apevia-black-x-cruiser-case-atx-mid-tower-case', - 'url_path': 'apevia-black-x-cruiser-case-atx-mid-tower-case.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.0000'}, - ('ol_catalog_product.info', (139, None, None, 'id')): {'categories': ['32'], - 'color': '23', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 00:54:41', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Introducing the next advancement in case design and technology, the Lexa. Designed from ground up to be symmetrical, the Lexa is representative of the modern lifestyle design cues of today. The Lexa's minimalist and classy design fits perfectly under the NZXT Classic Series line.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'NZXT Lexa Silver Aluminum ATX Mid-Tower Case (Default)', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '139', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': "The Lexa boasts a ridgid, but light weight aluminum chassis. The Lexa's high-air-flow design, while quiet, ensures cooling options for the more ambitious computing enthusiasts. Three thermal probes provide temperature readings to the illuminated LCD display for monitoring your systems core components. The Lexa ships with a rugged carrying strap with protective window cover for easy single-handed transportation.", - 'sku': 'nzxtlexa', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 00:54:41', - 'url_key': 'nzxt-lexa-silver-aluminum-atx-mid-tower-case', - 'url_path': 'nzxt-lexa-silver-aluminum-atx-mid-tower-case.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.0000'}, - ('ol_catalog_product.info', (139, u'2', None, 'id')): {'categories': ['32'], - 'color': '23', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 00:54:41', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Introducing the next advancement in case design and technology, the Lexa. Designed from ground up to be symmetrical, the Lexa is representative of the modern lifestyle design cues of today. The Lexa's minimalist and classy design fits perfectly under the NZXT Classic Series line.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'NZXT Lexa Silver Aluminum ATX Mid-Tower Case (Default)', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '139', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': "The Lexa boasts a ridgid, but light weight aluminum chassis. The Lexa's high-air-flow design, while quiet, ensures cooling options for the more ambitious computing enthusiasts. Three thermal probes provide temperature readings to the illuminated LCD display for monitoring your systems core components. The Lexa ships with a rugged carrying strap with protective window cover for easy single-handed transportation.", - 'sku': 'nzxtlexa', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 00:54:41', - 'url_key': 'nzxt-lexa-silver-aluminum-atx-mid-tower-case', - 'url_path': 'nzxt-lexa-silver-aluminum-atx-mid-tower-case.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.0000'}, - ('ol_catalog_product.info', (139, u'3', None, 'id')): {'categories': ['32'], - 'color': '23', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 00:54:41', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Introducing the next advancement in case design and technology, the Lexa. Designed from ground up to be symmetrical, the Lexa is representative of the modern lifestyle design cues of today. The Lexa's minimalist and classy design fits perfectly under the NZXT Classic Series line.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'NZXT Lexa Silver Aluminum ATX Mid-Tower Case (Default)', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '139', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': "The Lexa boasts a ridgid, but light weight aluminum chassis. The Lexa's high-air-flow design, while quiet, ensures cooling options for the more ambitious computing enthusiasts. Three thermal probes provide temperature readings to the illuminated LCD display for monitoring your systems core components. The Lexa ships with a rugged carrying strap with protective window cover for easy single-handed transportation.", - 'sku': 'nzxtlexa', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 00:54:41', - 'url_key': 'nzxt-lexa-silver-aluminum-atx-mid-tower-case', - 'url_path': 'nzxt-lexa-silver-aluminum-atx-mid-tower-case.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.0000'}, - ('ol_catalog_product.info', (140, None, None, 'id')): {'categories': ['15', - '31'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 00:59:55', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Crucial 2GB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '111', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Crucial 2GB PC4200 DDR2 533MHz Memory', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '140', - 'ram_size': '2GB', - 'recurring_profile': None, - 'required_options': '0', - 'set': '58', - 'short_description': 'Crucial 2GB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'sku': '2gbdimm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:14:23', - 'url_key': 'crucial-2gb-pc4200-ddr2-533mhz-memory', - 'url_path': 'crucial-2gb-pc4200-ddr2-533mhz-memory.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (140, u'2', None, 'id')): {'categories': ['15', - '31'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 00:59:55', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Crucial 2GB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '111', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Crucial 2GB PC4200 DDR2 533MHz Memory', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '140', - 'ram_size': '2GB', - 'recurring_profile': None, - 'required_options': '0', - 'set': '58', - 'short_description': 'Crucial 2GB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'sku': '2gbdimm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:14:23', - 'url_key': 'crucial-2gb-pc4200-ddr2-533mhz-memory', - 'url_path': 'crucial-2gb-pc4200-ddr2-533mhz-memory.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (140, u'3', None, 'id')): {'categories': ['15', - '31'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 00:59:55', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Crucial 2GB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '111', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Crucial 2GB PC4200 DDR2 533MHz Memory', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '199.9900', - 'product_id': '140', - 'ram_size': '2GB', - 'recurring_profile': None, - 'required_options': '0', - 'set': '58', - 'short_description': 'Crucial 2GB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'sku': '2gbdimm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:14:23', - 'url_key': 'crucial-2gb-pc4200-ddr2-533mhz-memory', - 'url_path': 'crucial-2gb-pc4200-ddr2-533mhz-memory.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (141, None, None, 'id')): {'categories': ['15', - '31'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:02:21', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Crucial 1024MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '111', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Crucial 1GB PC4200 DDR2 533MHz Memory', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '150.9900', - 'product_id': '141', - 'ram_size': '1GB', - 'recurring_profile': None, - 'required_options': '0', - 'set': '58', - 'short_description': 'Crucial 1024MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'sku': '1gbdimm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:13:04', - 'url_key': 'crucial-1gb-pc4200-ddr2-533mhz-memory', - 'url_path': 'crucial-1gb-pc4200-ddr2-533mhz-memory.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (141, u'2', None, 'id')): {'categories': ['15', - '31'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:02:21', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Crucial 1024MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '111', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Crucial 1GB PC4200 DDR2 533MHz Memory', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '150.9900', - 'product_id': '141', - 'ram_size': '1GB', - 'recurring_profile': None, - 'required_options': '0', - 'set': '58', - 'short_description': 'Crucial 1024MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'sku': '1gbdimm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:13:04', - 'url_key': 'crucial-1gb-pc4200-ddr2-533mhz-memory', - 'url_path': 'crucial-1gb-pc4200-ddr2-533mhz-memory.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (141, u'3', None, 'id')): {'categories': ['15', - '31'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:02:21', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Crucial 1024MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '111', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Crucial 1GB PC4200 DDR2 533MHz Memory', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '150.9900', - 'product_id': '141', - 'ram_size': '1GB', - 'recurring_profile': None, - 'required_options': '0', - 'set': '58', - 'short_description': 'Crucial 1024MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'sku': '1gbdimm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:13:04', - 'url_key': 'crucial-1gb-pc4200-ddr2-533mhz-memory', - 'url_path': 'crucial-1gb-pc4200-ddr2-533mhz-memory.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (142, None, None, 'id')): {'categories': [], - 'cost': None, - 'created_at': '2008-07-25 01:02:54', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '1 Year Extended Warranty - Parts and Labor', - 'enable_googlecheckout': None, - 'gift_message_available': None, - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'meta_description': '1 Year Warranty - Parts and Labor', - 'meta_keyword': '1 Year Warranty - Parts and Labor', - 'meta_title': '1 Year Warranty - Parts and Labor', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'One Year Extended Warranty - Parts and Labor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '150.0000', - 'product_id': '142', - 'recurring_profile': None, - 'required_options': '0', - 'set': '59', - 'short_description': '1 Year Extended Warranty - Parts and Labor', - 'sku': '1yr_p_l', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'virtual', - 'type_id': 'virtual', - 'updated_at': '2008-07-25 01:02:54', - 'url_key': '1-year-extended-warranty-parts-and-labor', - 'url_path': '1-year-extended-warranty-parts-and-labor.html', - 'visibility': '1', - 'websites': ['1']}, - ('ol_catalog_product.info', (143, None, None, 'id')): {'categories': ['15', - '31'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:05:00', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Crucial 512MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '111', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Crucial 512MB PC4200 DDR2 533MHz Memory', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.9900', - 'product_id': '143', - 'ram_size': '512MB', - 'recurring_profile': None, - 'required_options': '0', - 'set': '58', - 'short_description': 'Crucial 512MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'sku': '512dimm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:12:45', - 'url_key': 'crucial-512mb-pc4200-ddr2-533mhz-memory', - 'url_path': 'crucial-512mb-pc4200-ddr2-533mhz-memory.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (143, u'2', None, 'id')): {'categories': ['15', - '31'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:05:00', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Crucial 512MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '111', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Crucial 512MB PC4200 DDR2 533MHz Memory', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.9900', - 'product_id': '143', - 'ram_size': '512MB', - 'recurring_profile': None, - 'required_options': '0', - 'set': '58', - 'short_description': 'Crucial 512MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'sku': '512dimm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:12:45', - 'url_key': 'crucial-512mb-pc4200-ddr2-533mhz-memory', - 'url_path': 'crucial-512mb-pc4200-ddr2-533mhz-memory.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (143, u'3', None, 'id')): {'categories': ['15', - '31'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:05:00', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Crucial 512MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '111', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Crucial 512MB PC4200 DDR2 533MHz Memory', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.9900', - 'product_id': '143', - 'ram_size': '512MB', - 'recurring_profile': None, - 'required_options': '0', - 'set': '58', - 'short_description': 'Crucial 512MB PC4200 DDR2 533MHz Memory\r\nCrucial Technologies is part of Micron, the largest DRAM manufacturer in the U.S. and one of the largest in the world. Because they actually manufacture memory, they have unparalleled expertise in the upgrade industry. Crucial is the only consumer memory upgrade supplier that is part of a major DRAM manufacturer.\r\n\r\nEvery single Crucial memory module is tested before it goes out their doors. Crucial chips are individually tested under varying temperatures, voltages, and operational conditions for performance and functionality. ', - 'sku': '512dimm', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:12:45', - 'url_key': 'crucial-512mb-pc4200-ddr2-533mhz-memory', - 'url_path': 'crucial-512mb-pc4200-ddr2-533mhz-memory.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (144, None, None, 'id')): {'categories': [], - 'cost': None, - 'created_at': '2008-07-25 01:06:02', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '2 Year Extended Warranty - Parts and Labor', - 'enable_googlecheckout': None, - 'gift_message_available': None, - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'meta_description': '2 Year Warranty - Parts and Labor', - 'meta_keyword': '2 Year Warranty - Parts and Labor', - 'meta_title': '2 Year Warranty - Parts and Labor', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Two Year Extended Warranty - Parts and Labor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '250.0000', - 'product_id': '144', - 'recurring_profile': None, - 'required_options': '0', - 'set': '59', - 'short_description': '2 Year Extended Warranty - Parts and Labor', - 'sku': '2yr_p_l', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'virtual', - 'type_id': 'virtual', - 'updated_at': '2008-07-25 01:06:02', - 'url_key': '1-year-extended-warranty-parts-and-labor', - 'url_path': '1-year-extended-warranty-parts-and-labor-144.html', - 'visibility': '1', - 'websites': ['1']}, - ('ol_catalog_product.info', (145, None, None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '113', - 'created_at': '2008-07-25 01:07:37', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u"Overclocker\u2019s dream! Deliver more sophisticated solutions with the leading-edge technology of AMD Phenom\u2122 9000 Series processor. Built from the ground up for true quad-core performance, AMD Phenom 9000 Series processors incorporate a unified high-speed L3 cache and high-speed DDR2 memory. Speed through complex multitasking, critical business productivity, advanced visual design and modeling and visually stunning digital media and entertainment. Whether it's a single solution or an enterprise system, AMD Phenom processors have the power to perform.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '117', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'AMD Phenom X4 9850 Black Ed. 2.50GHz Retail', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '335.9900', - 'product_id': '145', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': u'Deliver more sophisticated solutions with the leading-edge technology of AMD Phenom\u2122 9000 Series processor.', - 'sku': 'amdphenom', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:10:32', - 'url_key': 'amd-phenom-x4-9850-black-ed-2-50ghz-retail', - 'url_path': 'amd-phenom-x4-9850-black-ed-2-50ghz-retail.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (145, u'2', None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '113', - 'created_at': '2008-07-25 01:07:37', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u"Overclocker\u2019s dream! Deliver more sophisticated solutions with the leading-edge technology of AMD Phenom\u2122 9000 Series processor. Built from the ground up for true quad-core performance, AMD Phenom 9000 Series processors incorporate a unified high-speed L3 cache and high-speed DDR2 memory. Speed through complex multitasking, critical business productivity, advanced visual design and modeling and visually stunning digital media and entertainment. Whether it's a single solution or an enterprise system, AMD Phenom processors have the power to perform.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '117', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'AMD Phenom X4 9850 Black Ed. 2.50GHz Retail', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '335.9900', - 'product_id': '145', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': u'Deliver more sophisticated solutions with the leading-edge technology of AMD Phenom\u2122 9000 Series processor.', - 'sku': 'amdphenom', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:10:32', - 'url_key': 'amd-phenom-x4-9850-black-ed-2-50ghz-retail', - 'url_path': 'amd-phenom-x4-9850-black-ed-2-50ghz-retail.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (145, u'3', None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '113', - 'created_at': '2008-07-25 01:07:37', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u"Overclocker\u2019s dream! Deliver more sophisticated solutions with the leading-edge technology of AMD Phenom\u2122 9000 Series processor. Built from the ground up for true quad-core performance, AMD Phenom 9000 Series processors incorporate a unified high-speed L3 cache and high-speed DDR2 memory. Speed through complex multitasking, critical business productivity, advanced visual design and modeling and visually stunning digital media and entertainment. Whether it's a single solution or an enterprise system, AMD Phenom processors have the power to perform.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '117', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'AMD Phenom X4 9850 Black Ed. 2.50GHz Retail', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '335.9900', - 'product_id': '145', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': u'Deliver more sophisticated solutions with the leading-edge technology of AMD Phenom\u2122 9000 Series processor.', - 'sku': 'amdphenom', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:10:32', - 'url_key': 'amd-phenom-x4-9850-black-ed-2-50ghz-retail', - 'url_path': 'amd-phenom-x4-9850-black-ed-2-50ghz-retail.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (146, None, None, 'id')): {'categories': [], - 'cost': None, - 'created_at': '2008-07-25 01:07:50', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '3 Year Extended Warranty - Parts and Labor', - 'enable_googlecheckout': None, - 'gift_message_available': None, - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'meta_description': '3 Year Warranty - Parts and Labor', - 'meta_keyword': '3 Year Warranty - Parts and Labor', - 'meta_title': '3 Year Warranty - Parts and Labor', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Three Year Extended Warranty - Parts and Labor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '325.0000', - 'product_id': '146', - 'recurring_profile': None, - 'required_options': '0', - 'set': '59', - 'short_description': '3 Year Extended Warranty - Parts and Labor', - 'sku': '3yr_p_l', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'virtual', - 'type_id': 'virtual', - 'updated_at': '2008-07-25 01:07:50', - 'url_key': '1-year-extended-warranty-parts-and-labor', - 'url_path': '1-year-extended-warranty-parts-and-labor-146.html', - 'visibility': '1', - 'websites': ['1']}, - ('ol_catalog_product.info', (147, None, None, 'id')): {'categories': ['30'], - 'contrast_ratio': '110', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:10:17', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u"The wide, 16:10 format of SAMSUNG's 226BW digital/Analog widescreen LCD monitor gives you plenty of room for all your computer applications and multiple images. DC 3000:1 contrast ratio creates crisp, easy-to-view images and gaming graphics, without ghosting or blurring. Complete with Microsoft\xae Vista\xae Premium certification and advanced dual interface for both analog digital video signals, the 226BW monitor is future-ready.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '3', - 'max_resolution': '1680 x 1050', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '22" Syncmaster LCD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '147', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '2ms', - 'screensize': '22"', - 'set': '61', - 'short_description': u"The wide, 16:10 format of SAMSUNG's 226BW digital/Analog widescreen LCD monitor gives you plenty of room for all your computer applications and multiple images. DC 3000:1 contrast ratio creates crisp, easy-to-view images and gaming graphics, without ghosting or blurring. Complete with Microsoft\xae Vista\xae Premium certification and advanced dual interface for both analog digital video signals, the 226BW monitor is future-ready.", - 'sku': '226bw', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:30', - 'url_key': '22-syncmaster-lcd-monitor', - 'url_path': '22-syncmaster-lcd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (147, u'2', None, 'id')): {'categories': ['30'], - 'contrast_ratio': '110', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:10:17', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u"The wide, 16:10 format of SAMSUNG's 226BW digital/Analog widescreen LCD monitor gives you plenty of room for all your computer applications and multiple images. DC 3000:1 contrast ratio creates crisp, easy-to-view images and gaming graphics, without ghosting or blurring. Complete with Microsoft\xae Vista\xae Premium certification and advanced dual interface for both analog digital video signals, the 226BW monitor is future-ready.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '3', - 'max_resolution': '1680 x 1050', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '22" Syncmaster LCD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '147', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '2ms', - 'screensize': '22"', - 'set': '61', - 'short_description': u"The wide, 16:10 format of SAMSUNG's 226BW digital/Analog widescreen LCD monitor gives you plenty of room for all your computer applications and multiple images. DC 3000:1 contrast ratio creates crisp, easy-to-view images and gaming graphics, without ghosting or blurring. Complete with Microsoft\xae Vista\xae Premium certification and advanced dual interface for both analog digital video signals, the 226BW monitor is future-ready.", - 'sku': '226bw', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:30', - 'url_key': '22-syncmaster-lcd-monitor', - 'url_path': '22-syncmaster-lcd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (147, u'3', None, 'id')): {'categories': ['30'], - 'contrast_ratio': '110', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:10:17', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u"The wide, 16:10 format of SAMSUNG's 226BW digital/Analog widescreen LCD monitor gives you plenty of room for all your computer applications and multiple images. DC 3000:1 contrast ratio creates crisp, easy-to-view images and gaming graphics, without ghosting or blurring. Complete with Microsoft\xae Vista\xae Premium certification and advanced dual interface for both analog digital video signals, the 226BW monitor is future-ready.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '3', - 'max_resolution': '1680 x 1050', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '22" Syncmaster LCD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '147', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '2ms', - 'screensize': '22"', - 'set': '61', - 'short_description': u"The wide, 16:10 format of SAMSUNG's 226BW digital/Analog widescreen LCD monitor gives you plenty of room for all your computer applications and multiple images. DC 3000:1 contrast ratio creates crisp, easy-to-view images and gaming graphics, without ghosting or blurring. Complete with Microsoft\xae Vista\xae Premium certification and advanced dual interface for both analog digital video signals, the 226BW monitor is future-ready.", - 'sku': '226bw', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:30', - 'url_key': '22-syncmaster-lcd-monitor', - 'url_path': '22-syncmaster-lcd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (148, None, None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '115', - 'created_at': '2008-07-25 01:10:21', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'Frustrated by staring at the hourglass icon as soon as you try to work on more than three programs at once, especially when you\u2019re working with digital media? Increase your performance with the AMD Athlon\u2122 64 X2 dual core processor. Work or play with multiple programs without any stalling or waiting. Dual-core technology is like having two processors, and two working together is better and faster than one working alone. Do more in less time with the AMD Athlon 64 X2 dual-core processor.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '117', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'AMD A64 X2 3800+ 2.0GHz OEM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '98.9900', - 'product_id': '148', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': 'AMD Athlon 64 X2 3800+ Processor ADO3800IAA5CZ - 2.0GHz, 2 x 512KB Cache, 1000MHz (2000 MT/s) FSB, Windsor, Dual Core, OEM, Socket AM2, Processor', - 'sku': 'amda64', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:11:01', - 'url_key': 'amd-a64-x2-3800-2-0ghz-oem', - 'url_path': 'amd-a64-x2-3800-2-0ghz-oem.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (148, u'2', None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '115', - 'created_at': '2008-07-25 01:10:21', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'Frustrated by staring at the hourglass icon as soon as you try to work on more than three programs at once, especially when you\u2019re working with digital media? Increase your performance with the AMD Athlon\u2122 64 X2 dual core processor. Work or play with multiple programs without any stalling or waiting. Dual-core technology is like having two processors, and two working together is better and faster than one working alone. Do more in less time with the AMD Athlon 64 X2 dual-core processor.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '117', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'AMD A64 X2 3800+ 2.0GHz OEM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '98.9900', - 'product_id': '148', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': 'AMD Athlon 64 X2 3800+ Processor ADO3800IAA5CZ - 2.0GHz, 2 x 512KB Cache, 1000MHz (2000 MT/s) FSB, Windsor, Dual Core, OEM, Socket AM2, Processor', - 'sku': 'amda64', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:11:01', - 'url_key': 'amd-a64-x2-3800-2-0ghz-oem', - 'url_path': 'amd-a64-x2-3800-2-0ghz-oem.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (148, u'3', None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '115', - 'created_at': '2008-07-25 01:10:21', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'Frustrated by staring at the hourglass icon as soon as you try to work on more than three programs at once, especially when you\u2019re working with digital media? Increase your performance with the AMD Athlon\u2122 64 X2 dual core processor. Work or play with multiple programs without any stalling or waiting. Dual-core technology is like having two processors, and two working together is better and faster than one working alone. Do more in less time with the AMD Athlon 64 X2 dual-core processor.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '117', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'AMD A64 X2 3800+ 2.0GHz OEM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '98.9900', - 'product_id': '148', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': 'AMD Athlon 64 X2 3800+ Processor ADO3800IAA5CZ - 2.0GHz, 2 x 512KB Cache, 1000MHz (2000 MT/s) FSB, Windsor, Dual Core, OEM, Socket AM2, Processor', - 'sku': 'amda64', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:11:01', - 'url_key': 'amd-a64-x2-3800-2-0ghz-oem', - 'url_path': 'amd-a64-x2-3800-2-0ghz-oem.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (149, None, None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:12:44', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '7200 rpm', - 'hardrive': '1 TB', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '118', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Western Digital - 1TB HD - 7200RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.0000', - 'product_id': '149', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '1tb7200', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:10:08', - 'url_key': '1tb-7200rpm', - 'url_path': '1tb-7200rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (149, u'2', None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:12:44', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '7200 rpm', - 'hardrive': '1 TB', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '118', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Western Digital - 1TB HD - 7200RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.0000', - 'product_id': '149', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '1tb7200', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:10:08', - 'url_key': '1tb-7200rpm', - 'url_path': '1tb-7200rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (149, u'3', None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:12:44', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '7200 rpm', - 'hardrive': '1 TB', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '118', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Western Digital - 1TB HD - 7200RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.0000', - 'product_id': '149', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '1tb7200', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:10:08', - 'url_key': '1tb-7200rpm', - 'url_path': '1tb-7200rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (150, None, None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:12:44', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '500GB- 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '7200 rpm', - 'hardrive': '500 GB', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '118', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Western Digital 500GB HD - 7200RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '299.0000', - 'product_id': '150', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '500GB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '500gb7200', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:09:26', - 'url_key': '500gb-7200rpm', - 'url_path': '500gb-7200rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (150, u'2', None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:12:44', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '500GB- 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '7200 rpm', - 'hardrive': '500 GB', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '118', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Western Digital 500GB HD - 7200RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '299.0000', - 'product_id': '150', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '500GB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '500gb7200', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:09:26', - 'url_key': '500gb-7200rpm', - 'url_path': '500gb-7200rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (150, u'3', None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:12:44', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '500GB- 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '7200 rpm', - 'hardrive': '500 GB', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '118', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Western Digital 500GB HD - 7200RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '299.0000', - 'product_id': '150', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '500GB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '500gb7200', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:09:26', - 'url_key': '500gb-7200rpm', - 'url_path': '500gb-7200rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (151, None, None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '112', - 'created_at': '2008-07-25 01:13:21', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u"Intel\xae Core\u21222 Duo processor is the new brand name for our next-generation energy-efficient performance desktop and mobile processors. Formerly known by their codenames Conroe and Merom, the Intel\xae Core\u21222 processors for desktop and mobile computers are based on the Intel\xae Core\u2122 microarchitecture, Intel's new industry-leading foundation for all mobile, desktop and server platforms moving forward.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '116', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Intel C2D E8400 3.0GHz Retail', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '98.9900', - 'product_id': '151', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': u'Intel\xae Core\u21222 Duo processor is the new brand name for our next-generation energy-efficient performance desktop and mobile processors.', - 'sku': 'intelc2d', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:10', - 'url_key': 'intel-c2d-e8400-3-0ghz-retail', - 'url_path': 'intel-c2d-e8400-3-0ghz-retail.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (151, u'2', None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '112', - 'created_at': '2008-07-25 01:13:21', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u"Intel\xae Core\u21222 Duo processor is the new brand name for our next-generation energy-efficient performance desktop and mobile processors. Formerly known by their codenames Conroe and Merom, the Intel\xae Core\u21222 processors for desktop and mobile computers are based on the Intel\xae Core\u2122 microarchitecture, Intel's new industry-leading foundation for all mobile, desktop and server platforms moving forward.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '116', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Intel C2D E8400 3.0GHz Retail', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '98.9900', - 'product_id': '151', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': u'Intel\xae Core\u21222 Duo processor is the new brand name for our next-generation energy-efficient performance desktop and mobile processors.', - 'sku': 'intelc2d', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:10', - 'url_key': 'intel-c2d-e8400-3-0ghz-retail', - 'url_path': 'intel-c2d-e8400-3-0ghz-retail.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (151, u'3', None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '112', - 'created_at': '2008-07-25 01:13:21', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u"Intel\xae Core\u21222 Duo processor is the new brand name for our next-generation energy-efficient performance desktop and mobile processors. Formerly known by their codenames Conroe and Merom, the Intel\xae Core\u21222 processors for desktop and mobile computers are based on the Intel\xae Core\u2122 microarchitecture, Intel's new industry-leading foundation for all mobile, desktop and server platforms moving forward.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '116', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Intel C2D E8400 3.0GHz Retail', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '98.9900', - 'product_id': '151', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': u'Intel\xae Core\u21222 Duo processor is the new brand name for our next-generation energy-efficient performance desktop and mobile processors.', - 'sku': 'intelc2d', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:10', - 'url_key': 'intel-c2d-e8400-3-0ghz-retail', - 'url_path': 'intel-c2d-e8400-3-0ghz-retail.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (152, None, None, 'id')): {'categories': ['30'], - 'contrast_ratio': '106', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:14:11', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'With ultrafine 10,000:1 contrast and wide 170\xb0 viewing angles, this 24" widescreen LCD monitor delivers crystal-clear high-definition visuals for gaming and work projects. The DVI-D input lets you connect a DVD player or other digital video device.\r\n\r\nProduct Features:\r\n * Ultrafast 5 ms response time\r\n * Digital Fine 10,000:1 contrast ratio; 400 cd/m\xb2 brightness\r\n * 1920 x 1200 maximum resolution; wide 170\xb0 horizontal and vertical viewing angles\r\n', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '1', - 'max_resolution': '1920x1200', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '24" Widescreen Flat-Panel LCD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '699.9900', - 'product_id': '152', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '5ms', - 'screensize': '24"', - 'set': '61', - 'short_description': u'5 ms response time; 10,000:1 contrast ratio; 400 cd/m\xb2 brightness; 1920 x 1200 maximum resolution; DVI-D and 15-pin D-sub inputs', - 'sku': 'W2452T-TF', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:00', - 'url_key': '24-widescreen-flat-panel-lcd-monitor', - 'url_path': '24-widescreen-flat-panel-lcd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (152, u'2', None, 'id')): {'categories': ['30'], - 'contrast_ratio': '106', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:14:11', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'With ultrafine 10,000:1 contrast and wide 170\xb0 viewing angles, this 24" widescreen LCD monitor delivers crystal-clear high-definition visuals for gaming and work projects. The DVI-D input lets you connect a DVD player or other digital video device.\r\n\r\nProduct Features:\r\n * Ultrafast 5 ms response time\r\n * Digital Fine 10,000:1 contrast ratio; 400 cd/m\xb2 brightness\r\n * 1920 x 1200 maximum resolution; wide 170\xb0 horizontal and vertical viewing angles\r\n', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '1', - 'max_resolution': '1920x1200', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '24" Widescreen Flat-Panel LCD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '699.9900', - 'product_id': '152', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '5ms', - 'screensize': '24"', - 'set': '61', - 'short_description': u'5 ms response time; 10,000:1 contrast ratio; 400 cd/m\xb2 brightness; 1920 x 1200 maximum resolution; DVI-D and 15-pin D-sub inputs', - 'sku': 'W2452T-TF', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:00', - 'url_key': '24-widescreen-flat-panel-lcd-monitor', - 'url_path': '24-widescreen-flat-panel-lcd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (152, u'3', None, 'id')): {'categories': ['30'], - 'contrast_ratio': '106', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:14:11', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'With ultrafine 10,000:1 contrast and wide 170\xb0 viewing angles, this 24" widescreen LCD monitor delivers crystal-clear high-definition visuals for gaming and work projects. The DVI-D input lets you connect a DVD player or other digital video device.\r\n\r\nProduct Features:\r\n * Ultrafast 5 ms response time\r\n * Digital Fine 10,000:1 contrast ratio; 400 cd/m\xb2 brightness\r\n * 1920 x 1200 maximum resolution; wide 170\xb0 horizontal and vertical viewing angles\r\n', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '1', - 'max_resolution': '1920x1200', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '24" Widescreen Flat-Panel LCD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '699.9900', - 'product_id': '152', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '5ms', - 'screensize': '24"', - 'set': '61', - 'short_description': u'5 ms response time; 10,000:1 contrast ratio; 400 cd/m\xb2 brightness; 1920 x 1200 maximum resolution; DVI-D and 15-pin D-sub inputs', - 'sku': 'W2452T-TF', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:00', - 'url_key': '24-widescreen-flat-panel-lcd-monitor', - 'url_path': '24-widescreen-flat-panel-lcd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (153, None, None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '114', - 'created_at': '2008-07-25 01:15:29', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The new Intel\xae Core\u21222 Extreme processor QX9775 with hafnium-infused chip design delivers unrivaled gaming performance1 with four independent processing cores, 12 MB of cache, 1600 MHz Front Side Bus, and clock speeds of 3.2 GHz.The Intel\xae Core\u21222 Extreme processor is the world\u2019s first quad core desktop processor, delivering the latest in cutting-edge processor technology and unprecedented performance across a wide range of applications and benchmarks. All Intel Core 2 Extreme processor QX9000 series are based on the industry-leading 45nm manufacturing technology, providing another giant leap forward on the road to multi-core and parallel computing.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '116', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Intel Core 2 Extreme QX9775 3.20GHz Retail', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '2049.9900', - 'product_id': '153', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': 'Intel Core 2 Extreme QX9775 Processor BX80574QX9775 - 45nm, 3.20GHz, 12MB Cache, 1600MHz FSB, Yorkfield XE, Quad-Core, Retail, Socket 771, Processor', - 'sku': 'intelcore2extreme', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:32:36', - 'url_key': 'intel-core-2-extreme-qx9775-3-20ghz-retail', - 'url_path': 'intel-core-2-extreme-qx9775-3-20ghz-retail.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (153, u'2', None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '114', - 'created_at': '2008-07-25 01:15:29', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The new Intel\xae Core\u21222 Extreme processor QX9775 with hafnium-infused chip design delivers unrivaled gaming performance1 with four independent processing cores, 12 MB of cache, 1600 MHz Front Side Bus, and clock speeds of 3.2 GHz.The Intel\xae Core\u21222 Extreme processor is the world\u2019s first quad core desktop processor, delivering the latest in cutting-edge processor technology and unprecedented performance across a wide range of applications and benchmarks. All Intel Core 2 Extreme processor QX9000 series are based on the industry-leading 45nm manufacturing technology, providing another giant leap forward on the road to multi-core and parallel computing.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '116', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Intel Core 2 Extreme QX9775 3.20GHz Retail', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '2049.9900', - 'product_id': '153', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': 'Intel Core 2 Extreme QX9775 Processor BX80574QX9775 - 45nm, 3.20GHz, 12MB Cache, 1600MHz FSB, Yorkfield XE, Quad-Core, Retail, Socket 771, Processor', - 'sku': 'intelcore2extreme', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:32:36', - 'url_key': 'intel-core-2-extreme-qx9775-3-20ghz-retail', - 'url_path': 'intel-core-2-extreme-qx9775-3-20ghz-retail.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (153, u'3', None, 'id')): {'categories': ['33'], - 'cost': None, - 'country_of_manufacture': None, - 'cpu_speed': '114', - 'created_at': '2008-07-25 01:15:29', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The new Intel\xae Core\u21222 Extreme processor QX9775 with hafnium-infused chip design delivers unrivaled gaming performance1 with four independent processing cores, 12 MB of cache, 1600 MHz Front Side Bus, and clock speeds of 3.2 GHz.The Intel\xae Core\u21222 Extreme processor is the world\u2019s first quad core desktop processor, delivering the latest in cutting-edge processor technology and unprecedented performance across a wide range of applications and benchmarks. All Intel Core 2 Extreme processor QX9000 series are based on the industry-leading 45nm manufacturing technology, providing another giant leap forward on the road to multi-core and parallel computing.', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '116', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Intel Core 2 Extreme QX9775 3.20GHz Retail', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '2049.9900', - 'product_id': '153', - 'recurring_profile': None, - 'required_options': '0', - 'set': '60', - 'short_description': 'Intel Core 2 Extreme QX9775 Processor BX80574QX9775 - 45nm, 3.20GHz, 12MB Cache, 1600MHz FSB, Yorkfield XE, Quad-Core, Retail, Socket 771, Processor', - 'sku': 'intelcore2extreme', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:32:36', - 'url_key': 'intel-core-2-extreme-qx9775-3-20ghz-retail', - 'url_path': 'intel-core-2-extreme-qx9775-3-20ghz-retail.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (154, None, None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:16:03', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '500 GB', - 'hardrive': '5400 rpm', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '119', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Seagate 500GB HD - 5400RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '299.0000', - 'product_id': '154', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '500gb5400', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:08:37', - 'url_key': '500gb-5400rpm', - 'url_path': '500gb-5400rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (154, u'2', None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:16:03', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '500 GB', - 'hardrive': '5400 rpm', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '119', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Seagate 500GB HD - 5400RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '299.0000', - 'product_id': '154', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '500gb5400', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:08:37', - 'url_key': '500gb-5400rpm', - 'url_path': '500gb-5400rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (154, u'3', None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:16:03', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '500 GB', - 'hardrive': '5400 rpm', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '119', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Seagate 500GB HD - 5400RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '299.0000', - 'product_id': '154', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '500gb5400', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:08:37', - 'url_key': '500gb-5400rpm', - 'url_path': '500gb-5400rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (155, None, None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:16:03', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '250 GB', - 'hardrive': '5400 rpm', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '119', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Seagate 250GB HD - 5400RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.0000', - 'product_id': '155', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '250gb5400', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:07:40', - 'url_key': '250gb-5400rpm', - 'url_path': '250gb-5400rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (155, u'2', None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:16:03', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '250 GB', - 'hardrive': '5400 rpm', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '119', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Seagate 250GB HD - 5400RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.0000', - 'product_id': '155', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '250gb5400', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:07:40', - 'url_key': '250gb-5400rpm', - 'url_path': '250gb-5400rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (155, u'3', None, 'id')): {'categories': ['29'], - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:16:03', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'harddrive_speed': '250 GB', - 'hardrive': '5400 rpm', - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '119', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Seagate 250GB HD - 5400RPM', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.0000', - 'product_id': '155', - 'recurring_profile': None, - 'required_options': '0', - 'set': '62', - 'short_description': '1 TB - 7200RPM, SATA 3.0Gb/s, 32MB Cache', - 'sku': '250gb5400', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:07:40', - 'url_key': '250gb-5400rpm', - 'url_path': '250gb-5400rpm.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (156, None, None, 'id')): {'categories': ['30'], - 'contrast_ratio': '106', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:16:51', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'Experience smooth gaming visuals and crystal-clear video with this 19" flat-panel LCD monitor that features an ultrafast 2 ms response time and sharp 10,000:1 contrast. The DVI-D with HDCP input lets you connect a DVD player or other digital video device.\r\nProduct Features\r\n\r\n * Ultrafast 2 ms response time\r\n * Digital Fine 10,000:1 contrast ratio; 300 cd/m\xb2 brightness\r\n * 1440 x 900 maximum resolution; wide 170\xb0 horizontal and vertical viewing angles\r\n', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '1', - 'max_resolution': '1440x900', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '19" Widescreen Flat-Panel LCD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '156', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '2ms', - 'screensize': '19"', - 'set': '61', - 'short_description': u'2 ms response time; 10,000:1 contrast ratio; 300 cd/m\xb2 brightness; 1440 x 900 maximum resolution; DVI-D and 15-pin D-sub inputs', - 'sku': 'W1952TQ-TF', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:26', - 'url_key': '19-widescreen-flat-panel-lcd-monitor', - 'url_path': '19-widescreen-flat-panel-lcd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (156, u'2', None, 'id')): {'categories': ['30'], - 'contrast_ratio': '106', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:16:51', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'Experience smooth gaming visuals and crystal-clear video with this 19" flat-panel LCD monitor that features an ultrafast 2 ms response time and sharp 10,000:1 contrast. The DVI-D with HDCP input lets you connect a DVD player or other digital video device.\r\nProduct Features\r\n\r\n * Ultrafast 2 ms response time\r\n * Digital Fine 10,000:1 contrast ratio; 300 cd/m\xb2 brightness\r\n * 1440 x 900 maximum resolution; wide 170\xb0 horizontal and vertical viewing angles\r\n', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '1', - 'max_resolution': '1440x900', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '19" Widescreen Flat-Panel LCD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '156', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '2ms', - 'screensize': '19"', - 'set': '61', - 'short_description': u'2 ms response time; 10,000:1 contrast ratio; 300 cd/m\xb2 brightness; 1440 x 900 maximum resolution; DVI-D and 15-pin D-sub inputs', - 'sku': 'W1952TQ-TF', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:26', - 'url_key': '19-widescreen-flat-panel-lcd-monitor', - 'url_path': '19-widescreen-flat-panel-lcd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (156, u'3', None, 'id')): {'categories': ['30'], - 'contrast_ratio': '106', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:16:51', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'Experience smooth gaming visuals and crystal-clear video with this 19" flat-panel LCD monitor that features an ultrafast 2 ms response time and sharp 10,000:1 contrast. The DVI-D with HDCP input lets you connect a DVD player or other digital video device.\r\nProduct Features\r\n\r\n * Ultrafast 2 ms response time\r\n * Digital Fine 10,000:1 contrast ratio; 300 cd/m\xb2 brightness\r\n * 1440 x 900 maximum resolution; wide 170\xb0 horizontal and vertical viewing angles\r\n', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '1', - 'max_resolution': '1440x900', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '19" Widescreen Flat-Panel LCD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '399.9900', - 'product_id': '156', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '2ms', - 'screensize': '19"', - 'set': '61', - 'short_description': u'2 ms response time; 10,000:1 contrast ratio; 300 cd/m\xb2 brightness; 1440 x 900 maximum resolution; DVI-D and 15-pin D-sub inputs', - 'sku': 'W1952TQ-TF', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:33:26', - 'url_key': '19-widescreen-flat-panel-lcd-monitor', - 'url_path': '19-widescreen-flat-panel-lcd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (157, None, None, 'id')): {'categories': ['30'], - 'contrast_ratio': '107', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:19:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': ' * Digital (DVI), USB 2.0 and FireWire 400 inputs\r\n * Cinema HD delivers up to 16.7 million colors across a wide gamut for a breathtaking, vivid picture\r\n * ColorSync technology lets you create a custom profile to maintain consistent colors on the screen and in print\r\n * Single cable with breakout for DVI, USB and FireWire ports provides a tidy look while reducing clutter\r\n * Built-in, 2-port USB 2.0 hub to easily connect peripheral devices\r\n * User controls allow you to monitor display power, system sleep/wake, brightness and monitor tilt\r\n * Antiglare, hard-coat screen treatment\r\n * Wall-mountable with optional mounting kit (not included)\r\n * ENERGY STAR compliance assures a high standard of energy efficiency\r\n', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '29', - 'max_resolution': '1920x1200', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '30" Flat-Panel TFT-LCD Cinema HD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '699.9900', - 'product_id': '157', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '15ms', - 'screensize': '30"', - 'set': '61', - 'short_description': 'Computer games, digital photo editing and graphic applications will astound you on this huge 30" flat-panel monitor. Cinema HD and ColorSync technology let you enjoy 16.7 million breathtaking colors and custom profiling for color consistency.', - 'sku': 'M9179LL', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:32:12', - 'url_key': '30-flat-panel-tft-lcd-cinema-hd-monitor', - 'url_path': '30-flat-panel-tft-lcd-cinema-hd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (157, u'2', None, 'id')): {'categories': ['30'], - 'contrast_ratio': '107', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:19:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': ' * Digital (DVI), USB 2.0 and FireWire 400 inputs\r\n * Cinema HD delivers up to 16.7 million colors across a wide gamut for a breathtaking, vivid picture\r\n * ColorSync technology lets you create a custom profile to maintain consistent colors on the screen and in print\r\n * Single cable with breakout for DVI, USB and FireWire ports provides a tidy look while reducing clutter\r\n * Built-in, 2-port USB 2.0 hub to easily connect peripheral devices\r\n * User controls allow you to monitor display power, system sleep/wake, brightness and monitor tilt\r\n * Antiglare, hard-coat screen treatment\r\n * Wall-mountable with optional mounting kit (not included)\r\n * ENERGY STAR compliance assures a high standard of energy efficiency\r\n', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '29', - 'max_resolution': '1920x1200', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '30" Flat-Panel TFT-LCD Cinema HD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '699.9900', - 'product_id': '157', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '15ms', - 'screensize': '30"', - 'set': '61', - 'short_description': 'Computer games, digital photo editing and graphic applications will astound you on this huge 30" flat-panel monitor. Cinema HD and ColorSync technology let you enjoy 16.7 million breathtaking colors and custom profiling for color consistency.', - 'sku': 'M9179LL', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:32:12', - 'url_key': '30-flat-panel-tft-lcd-cinema-hd-monitor', - 'url_path': '30-flat-panel-tft-lcd-cinema-hd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (157, u'3', None, 'id')): {'categories': ['30'], - 'contrast_ratio': '107', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:19:30', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': ' * Digital (DVI), USB 2.0 and FireWire 400 inputs\r\n * Cinema HD delivers up to 16.7 million colors across a wide gamut for a breathtaking, vivid picture\r\n * ColorSync technology lets you create a custom profile to maintain consistent colors on the screen and in print\r\n * Single cable with breakout for DVI, USB and FireWire ports provides a tidy look while reducing clutter\r\n * Built-in, 2-port USB 2.0 hub to easily connect peripheral devices\r\n * User controls allow you to monitor display power, system sleep/wake, brightness and monitor tilt\r\n * Antiglare, hard-coat screen treatment\r\n * Wall-mountable with optional mounting kit (not included)\r\n * ENERGY STAR compliance assures a high standard of energy efficiency\r\n', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '29', - 'max_resolution': '1920x1200', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': '30" Flat-Panel TFT-LCD Cinema HD Monitor', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '699.9900', - 'product_id': '157', - 'recurring_profile': None, - 'required_options': '0', - 'response_time': '15ms', - 'screensize': '30"', - 'set': '61', - 'short_description': 'Computer games, digital photo editing and graphic applications will astound you on this huge 30" flat-panel monitor. Cinema HD and ColorSync technology let you enjoy 16.7 million breathtaking colors and custom profiling for color consistency.', - 'sku': 'M9179LL', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:32:12', - 'url_key': '30-flat-panel-tft-lcd-cinema-hd-monitor', - 'url_path': '30-flat-panel-tft-lcd-cinema-hd-monitor.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (158, None, None, 'id')): {'_bundle_data': {'options': []}, - 'categories': ['28'], - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:21:23', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': '
                                                                                                                  \r\n
                                                                                                                    \r\n
                                                                                                                  • Processor: The Ultra Low Voltage Intel Core Solo U1500 processor offers a 1.33 GHz speed paired with a fast 533 MHz front-side bus and large 2 MB L2 cache. (An L2, or secondary, cache temporarily stores data; and a larger L2 cache can help speed up your system\'s performance. The FSB carries data between the CPU and RAM, and a faster front-side bus will deliver better overall performance.) The Core Solo processor delivers enhanced performance for today\'s demanding applications such as CAD tools, 3-D and 2-D modeling, video editing, digital music, digital photography and gaming. And Intel\'s Smart Cache technology enables smarter, more efficient cache and bus design for enhanced performance, responsiveness and power savings.
                                                                                                                  • \r\n
                                                                                                                  \r\n', - 'enable_googlecheckout': None, - 'gift_message_available': None, - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'meta_description': u'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC (Intel Core Solo Processor U1500, 2 GB RAM, 100 GB Hard Drive, DVD\xb1RW Drive, Vista Business) Charcoal Black', - 'meta_keyword': 'Sony, VAIO, VGN-TXN27N/B , Notebook, PC, Intel, 2 GB RAM, ', - 'meta_title': u'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC (Intel Core Solo Processor U1500, 2 GB RAM, 100 GB Hard Drive, DVD\xb1RW Drive, Vista Business) Charcoal Black', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Sony VAIO 11.1" Notebook PC', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': None, - 'price_type': '0', - 'price_view': '1', - 'product_id': '158', - 'required_options': '1', - 'set': '39', - 'shipment_type': '0', - 'short_description': 'Weighing in at just an amazing 2.84 pounds and offering a sleek, durable carbon-fiber case in charcoal black. And with 4 to 10 hours of standard battery life, it has the stamina to power you through your most demanding applications. With the integrated wireless WAN, you can access the national Sprint Mobile Broadband service to extend your wireless coverage beyond LAN access networks and hotspots, giving you the freedom to go farther, do more, and stay connected.\r\n\r\n', - 'sku': 'VGN-TXN27N/BW', - 'sku_type': '1', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'bundle', - 'type_id': 'bundle', - 'updated_at': '2008-07-25 02:05:56', - 'url_key': 'sony-vaio-vgn-txn27n-b-11-1-notebook-pc', - 'url_path': 'sony-vaio-vgn-txn27n-b-11-1-notebook-pc-158.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': None, - 'weight_type': '0'}, - ('ol_catalog_product.info', (159, None, None, 'id')): {'categories': ['34'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:22:14', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The most comfortable ergonomic keyboard on the market! We just made a great deal for this Microsoft Natural ergonomic keyboard. And we know you\u2019re going to love it. This newest addition to the world\u2019s best selling line of ergonomic keyboards features a natural wrist alignment that will make your day! Just one touch allows you to perform a wealth of common but important tasks such as opening documents and replying to e-mail. The Microsoft Natural Model 4000 ergonomic keyboard also features an improved number pad with easy-to-reach symbols such left and right, equal sign and back space placed just above the number pad. Easy-access to the Internet. Multimedia keys. Lockable F keys and much more (see complete list of additional features below). Don\u2019t you think it\u2019s time to go natural? Microsoft\u2019s Natural Ergonomic Model 4000 Keyboard. Available right here, for the best price!', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '120', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Microsoft Natural Ergonomic Keyboard 4000', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.9900', - 'product_id': '159', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'The most comfortable ergonomic keyboard on the market! We just made a great deal for this Microsoft Natural ergonomic keyboard.', - 'sku': 'microsoftnatural', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:54', - 'url_key': 'microsoft-natural-ergonomic-keyboard-4000', - 'url_path': 'microsoft-natural-ergonomic-keyboard-4000.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (159, u'2', None, 'id')): {'categories': ['34'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:22:14', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The most comfortable ergonomic keyboard on the market! We just made a great deal for this Microsoft Natural ergonomic keyboard. And we know you\u2019re going to love it. This newest addition to the world\u2019s best selling line of ergonomic keyboards features a natural wrist alignment that will make your day! Just one touch allows you to perform a wealth of common but important tasks such as opening documents and replying to e-mail. The Microsoft Natural Model 4000 ergonomic keyboard also features an improved number pad with easy-to-reach symbols such left and right, equal sign and back space placed just above the number pad. Easy-access to the Internet. Multimedia keys. Lockable F keys and much more (see complete list of additional features below). Don\u2019t you think it\u2019s time to go natural? Microsoft\u2019s Natural Ergonomic Model 4000 Keyboard. Available right here, for the best price!', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '120', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Microsoft Natural Ergonomic Keyboard 4000', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.9900', - 'product_id': '159', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'The most comfortable ergonomic keyboard on the market! We just made a great deal for this Microsoft Natural ergonomic keyboard.', - 'sku': 'microsoftnatural', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:54', - 'url_key': 'microsoft-natural-ergonomic-keyboard-4000', - 'url_path': 'microsoft-natural-ergonomic-keyboard-4000.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (159, u'3', None, 'id')): {'categories': ['34'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:22:14', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'The most comfortable ergonomic keyboard on the market! We just made a great deal for this Microsoft Natural ergonomic keyboard. And we know you\u2019re going to love it. This newest addition to the world\u2019s best selling line of ergonomic keyboards features a natural wrist alignment that will make your day! Just one touch allows you to perform a wealth of common but important tasks such as opening documents and replying to e-mail. The Microsoft Natural Model 4000 ergonomic keyboard also features an improved number pad with easy-to-reach symbols such left and right, equal sign and back space placed just above the number pad. Easy-access to the Internet. Multimedia keys. Lockable F keys and much more (see complete list of additional features below). Don\u2019t you think it\u2019s time to go natural? Microsoft\u2019s Natural Ergonomic Model 4000 Keyboard. Available right here, for the best price!', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '120', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Microsoft Natural Ergonomic Keyboard 4000', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '99.9900', - 'product_id': '159', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'The most comfortable ergonomic keyboard on the market! We just made a great deal for this Microsoft Natural ergonomic keyboard.', - 'sku': 'microsoftnatural', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:54', - 'url_key': 'microsoft-natural-ergonomic-keyboard-4000', - 'url_path': 'microsoft-natural-ergonomic-keyboard-4000.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (160, None, None, 'id')): {'categories': ['34'], - 'color': '59', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:24:15', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Our most advanced trackball yet: a comfortable, cordless, finger-operated trackball that works where you need it. Save space and eliminate desktop clutter. Take advantage of extra buttons that help you navigate around Windows and the web more easily. And with Logitech's patented optical technology, you get virtually maintenance-free precision and smooth tracking.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '121', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Logitech Cordless Optical Trackman', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '79.9900', - 'product_id': '160', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': "Our most advanced trackball yet. It's comfortable, cordless, finger-operated and works where you need it. Save space and eliminate desktop clutter.", - 'sku': 'logitechcord', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:33', - 'url_key': 'microsoft-wireless-optical-mouse-5000', - 'url_path': 'microsoft-wireless-optical-mouse-5000.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (160, u'2', None, 'id')): {'categories': ['34'], - 'color': '59', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:24:15', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Our most advanced trackball yet: a comfortable, cordless, finger-operated trackball that works where you need it. Save space and eliminate desktop clutter. Take advantage of extra buttons that help you navigate around Windows and the web more easily. And with Logitech's patented optical technology, you get virtually maintenance-free precision and smooth tracking.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '121', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Logitech Cordless Optical Trackman', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '79.9900', - 'product_id': '160', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': "Our most advanced trackball yet. It's comfortable, cordless, finger-operated and works where you need it. Save space and eliminate desktop clutter.", - 'sku': 'logitechcord', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:33', - 'url_key': 'microsoft-wireless-optical-mouse-5000', - 'url_path': 'microsoft-wireless-optical-mouse-5000.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (160, u'3', None, 'id')): {'categories': ['34'], - 'color': '59', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:24:15', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "Our most advanced trackball yet: a comfortable, cordless, finger-operated trackball that works where you need it. Save space and eliminate desktop clutter. Take advantage of extra buttons that help you navigate around Windows and the web more easily. And with Logitech's patented optical technology, you get virtually maintenance-free precision and smooth tracking.", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '121', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Logitech Cordless Optical Trackman', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '79.9900', - 'product_id': '160', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': "Our most advanced trackball yet. It's comfortable, cordless, finger-operated and works where you need it. Save space and eliminate desktop clutter.", - 'sku': 'logitechcord', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:33', - 'url_key': 'microsoft-wireless-optical-mouse-5000', - 'url_path': 'microsoft-wireless-optical-mouse-5000.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (161, None, None, 'id')): {'categories': ['34'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:25:09', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "PerfectStroke key system for the ultimate keyboard feel. Bluetooth wireless and Li-Ion powered. Stylishly sleek with its elegant charging base and backlit controls, the diNovo Edge makes a bold statement.\r\n\r\nAn ideal partner for any high-end computer, the ultra-slim Logitech diNovo Edge delivers the ultimate in feel and response. The revolutionary TouchDisc with hyper-speed scrolling and pixel-perfect control makes trackpads obsolete. A slim recharging base doubles as a keyboard stand. Work longer thanks to the longer-lasting Li-Ion batteries, and more securely via Bluetooth wireless technology. Combine it with the world's most advanced mouse, the Logitech MX Revolution, for a premium desktop experience!", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '121', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Logitech diNovo Edge Keyboard', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '239.9900', - 'product_id': '161', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'PerfectStroke key system for the ultimate keyboard feel. Bluetooth wireless and Li-Ion powered.', - 'sku': 'logidinovo', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:22', - 'url_key': 'logitech-dinovo-edge-keyboard', - 'url_path': 'logitech-dinovo-edge-keyboard.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (161, u'2', None, 'id')): {'categories': ['34'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:25:09', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "PerfectStroke key system for the ultimate keyboard feel. Bluetooth wireless and Li-Ion powered. Stylishly sleek with its elegant charging base and backlit controls, the diNovo Edge makes a bold statement.\r\n\r\nAn ideal partner for any high-end computer, the ultra-slim Logitech diNovo Edge delivers the ultimate in feel and response. The revolutionary TouchDisc with hyper-speed scrolling and pixel-perfect control makes trackpads obsolete. A slim recharging base doubles as a keyboard stand. Work longer thanks to the longer-lasting Li-Ion batteries, and more securely via Bluetooth wireless technology. Combine it with the world's most advanced mouse, the Logitech MX Revolution, for a premium desktop experience!", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '121', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Logitech diNovo Edge Keyboard', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '239.9900', - 'product_id': '161', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'PerfectStroke key system for the ultimate keyboard feel. Bluetooth wireless and Li-Ion powered.', - 'sku': 'logidinovo', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:22', - 'url_key': 'logitech-dinovo-edge-keyboard', - 'url_path': 'logitech-dinovo-edge-keyboard.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (161, u'3', None, 'id')): {'categories': ['34'], - 'color': None, - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:25:09', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "PerfectStroke key system for the ultimate keyboard feel. Bluetooth wireless and Li-Ion powered. Stylishly sleek with its elegant charging base and backlit controls, the diNovo Edge makes a bold statement.\r\n\r\nAn ideal partner for any high-end computer, the ultra-slim Logitech diNovo Edge delivers the ultimate in feel and response. The revolutionary TouchDisc with hyper-speed scrolling and pixel-perfect control makes trackpads obsolete. A slim recharging base doubles as a keyboard stand. Work longer thanks to the longer-lasting Li-Ion batteries, and more securely via Bluetooth wireless technology. Combine it with the world's most advanced mouse, the Logitech MX Revolution, for a premium desktop experience!", - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '121', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Logitech diNovo Edge Keyboard', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '239.9900', - 'product_id': '161', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'PerfectStroke key system for the ultimate keyboard feel. Bluetooth wireless and Li-Ion powered.', - 'sku': 'logidinovo', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:22', - 'url_key': 'logitech-dinovo-edge-keyboard', - 'url_path': 'logitech-dinovo-edge-keyboard.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (162, None, None, 'id')): {'categories': ['34'], - 'color': '24', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:25:11', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Experience smoother tracking and wireless freedom. Navigate with enhanced precision with this ergonomic High Definition Optical mouse. Easily enlarge and edit detail with the new Magnifier and enjoy more than six months of battery life. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '120', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Microsoft Wireless Optical Mouse 5000', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '59.9900', - 'product_id': '162', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'Experience smoother tracking and wireless freedom. Navigate with enhanced precision with this ergonomic High Definition Optical mouse.', - 'sku': 'micronmouse5000', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:01', - 'url_key': 'microsoft-wireless-optical-mouse-5000', - 'url_path': 'microsoft-wireless-optical-mouse-5000-162.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (162, u'2', None, 'id')): {'categories': ['34'], - 'color': '24', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:25:11', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Experience smoother tracking and wireless freedom. Navigate with enhanced precision with this ergonomic High Definition Optical mouse. Easily enlarge and edit detail with the new Magnifier and enjoy more than six months of battery life. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '120', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Microsoft Wireless Optical Mouse 5000', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '59.9900', - 'product_id': '162', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'Experience smoother tracking and wireless freedom. Navigate with enhanced precision with this ergonomic High Definition Optical mouse.', - 'sku': 'micronmouse5000', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:01', - 'url_key': 'microsoft-wireless-optical-mouse-5000', - 'url_path': 'microsoft-wireless-optical-mouse-5000-162.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (162, u'3', None, 'id')): {'categories': ['34'], - 'color': '24', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:25:11', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Experience smoother tracking and wireless freedom. Navigate with enhanced precision with this ergonomic High Definition Optical mouse. Easily enlarge and edit detail with the new Magnifier and enjoy more than six months of battery life. ', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': None, - 'manufacturer': '120', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Microsoft Wireless Optical Mouse 5000', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '59.9900', - 'product_id': '162', - 'recurring_profile': None, - 'required_options': '0', - 'set': '9', - 'short_description': 'Experience smoother tracking and wireless freedom. Navigate with enhanced precision with this ergonomic High Definition Optical mouse.', - 'sku': 'micronmouse5000', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-08-08 15:31:01', - 'url_key': 'microsoft-wireless-optical-mouse-5000', - 'url_path': 'microsoft-wireless-optical-mouse-5000-162.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '1.0000'}, - ('ol_catalog_product.info', (163, None, None, 'id')): {'_bundle_data': {'options': []}, - 'categories': ['15', '27'], - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:34:24', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Make a computer', - 'enable_googlecheckout': None, - 'gift_message_available': None, - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Computer', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': None, - 'price_type': '0', - 'price_view': '0', - 'product_id': '163', - 'required_options': '1', - 'set': '9', - 'shipment_type': '0', - 'short_description': 'Make a computer', - 'sku': 'computer', - 'sku_type': '0', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'bundle', - 'type_id': 'bundle', - 'updated_at': '2008-07-29 01:33:10', - 'url_key': 'computer', - 'url_path': 'computer.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': None, - 'weight_type': '0'}, - ('ol_catalog_product.info', (164, None, None, 'id')): {'_bundle_data': {'options': []}, - 'categories': ['27'], - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:36:33', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'Make a computer', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'Gaming Computer', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '4999.9500', - 'price_type': '1', - 'price_view': '0', - 'product_id': '164', - 'required_options': '1', - 'set': '9', - 'shipment_type': '1', - 'short_description': 'Make a computer', - 'sku': 'computer_fixed', - 'sku_type': '1', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '1', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'bundle', - 'type_id': 'bundle', - 'updated_at': '2008-07-31 09:30:37', - 'url_key': 'gaming-computer', - 'url_path': 'gaming-computer.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '20.0000', - 'weight_type': '1'}, - ('ol_catalog_product.info', (165, None, None, 'id')): {'_bundle_data': {'options': []}, - 'categories': ['27'], - 'country_of_manufacture': None, - 'created_at': '2008-07-25 01:40:27', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': 'test description', - 'enable_googlecheckout': None, - 'gift_message_available': None, - 'group_price': [], - 'has_options': '1', - 'image_label': None, - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'My Computer', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': None, - 'price_type': '0', - 'price_view': '0', - 'product_id': '165', - 'required_options': '1', - 'set': '39', - 'shipment_type': '0', - 'short_description': 'test description', - 'sku': 'mycomputer', - 'sku_type': '1', - 'small_image_label': None, - 'special_from_date': '2008-07-30 00:00:00', - 'special_price': '75.0000', - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '0', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'bundle', - 'type_id': 'bundle', - 'updated_at': '2008-07-31 16:19:40', - 'url_key': 'my-computer', - 'url_path': 'my-computer.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '10.0000', - 'weight_type': '1'}, - ('ol_catalog_product.info', (166, None, None, 'id')): {'activation_information': '', - 'categories': ['8'], - 'color': '24', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 02:22:13', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'Re-defining the perception of advanced mobile phones\u2026 the HTC Touch Diamond\u2122 signals a giant leap forward in combining hi-tech prowess with intuitive usability and exhilarating design.\r\n\r\nFeaturing a sharp 2.8-inch touch screen housed within a stunning formation of brushed metal and flawless faceted edges, the HTC Touch Diamond is as beautiful to behold as it is to use.\r\n\r\nWith HTC\u2019s vibrant touch-responsive user interface, TouchFLO\u2122 3D, and ultra-fast HSDPA internet connectivity\u2026 the HTC Touch Diamond offers a rich online experience to rival a notebook computer, allowing you to interact with Google, YouTube, and Wikipedia as freely as you would with a broadband connection.\r\n\r\nYour contacts, favourite music, videos and photos are no longer an uninspired line of text. With TouchFLO 3D, album artwork, video stills and snapshots of your friends\u2019 and family\u2019s faces are brought to life for you to interact, play and launch at your fingertips.\r\n\r\nA 3.2 megapixel auto-focus camera will help you capture the perfect moment in style and with a massive 4GB of internal storage you can keep all the files you need. The integrated ultra-sensitive GPS will help you find your destination as quickly and efficiently as a dedicated satellite navigation unit.\r\n\r\nStyle and substance in a phone are no longer mutually exclusive. The HTC Touch Diamond has arrived.', - 'dimension': '102 mm (L) X 51 mm (W) X 11.35 mm (T)', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': u'Re-defining the perception of advanced mobile phones\u2026 the HTC Touch Diamond\u2122 signals a giant leap forward in combining hi-tech prowess with intuitive usability and exhilarating design.\r\n\r\nFeaturing a sharp 2.8-inch touch screen housed within a stunning formation of brushed metal and flawless faceted edges, the HTC Touch Diamond is as beautiful to behold as it is to use.\r\n\r\nWith HTC\u2019s vibrant touch-responsive user interface, TouchFLO\u2122 3D, and ultra-fast HSDPA internet connectivity\u2026 the HTC Touch Diamond offers a rich online experience to rival a notebook computer, allowing you to interact with Google, YouTube, and Wikipedia as freely as you would with a broadband connection.\r\n\r\nYour contacts, favourite music, videos and photos are no longer an uninspired line of text. With TouchFLO 3D, album artwork, video stills and snapshots of your friends\u2019 and family\u2019s faces are brought to life for you to interact, play and launch at your fingertips.\r\n\r\nA 3.2 megapixel auto-focus camera will help you capture the perfect moment in style and with a massive 4GB of internal storage you can keep all the files you need. The integrated ultra-sensitive GPS will help you find your destination as quickly and efficiently as a dedicated satellite navigation unit.\r\n\r\nStyle and substance in a phone are no longer mutually exclusive. The HTC Touch Diamond has arrived.', - 'is_recurring': None, - 'manufacturer': '122', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'model': 'HTC Touch Diamond', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'HTC Touch Diamond', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '750.0000', - 'product_id': '166', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': u'Re-defining the perception of advanced mobile phones\u2026 the HTC Touch Diamond\u2122 signals a giant leap forward in combining hi-tech prowess with intuitive usability and exhilarating design.', - 'sku': 'HTC Touch Diamond', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:22:44', - 'url_key': 'htc-touch-diamond', - 'url_path': 'htc-touch-diamond.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '0.3000'}, - ('ol_catalog_product.info', (166, u'2', None, 'id')): {'activation_information': '', - 'categories': ['8'], - 'color': '24', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 02:22:13', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'Re-defining the perception of advanced mobile phones\u2026 the HTC Touch Diamond\u2122 signals a giant leap forward in combining hi-tech prowess with intuitive usability and exhilarating design.\r\n\r\nFeaturing a sharp 2.8-inch touch screen housed within a stunning formation of brushed metal and flawless faceted edges, the HTC Touch Diamond is as beautiful to behold as it is to use.\r\n\r\nWith HTC\u2019s vibrant touch-responsive user interface, TouchFLO\u2122 3D, and ultra-fast HSDPA internet connectivity\u2026 the HTC Touch Diamond offers a rich online experience to rival a notebook computer, allowing you to interact with Google, YouTube, and Wikipedia as freely as you would with a broadband connection.\r\n\r\nYour contacts, favourite music, videos and photos are no longer an uninspired line of text. With TouchFLO 3D, album artwork, video stills and snapshots of your friends\u2019 and family\u2019s faces are brought to life for you to interact, play and launch at your fingertips.\r\n\r\nA 3.2 megapixel auto-focus camera will help you capture the perfect moment in style and with a massive 4GB of internal storage you can keep all the files you need. The integrated ultra-sensitive GPS will help you find your destination as quickly and efficiently as a dedicated satellite navigation unit.\r\n\r\nStyle and substance in a phone are no longer mutually exclusive. The HTC Touch Diamond has arrived.', - 'dimension': '102 mm (L) X 51 mm (W) X 11.35 mm (T)', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': u'Re-defining the perception of advanced mobile phones\u2026 the HTC Touch Diamond\u2122 signals a giant leap forward in combining hi-tech prowess with intuitive usability and exhilarating design.\r\n\r\nFeaturing a sharp 2.8-inch touch screen housed within a stunning formation of brushed metal and flawless faceted edges, the HTC Touch Diamond is as beautiful to behold as it is to use.\r\n\r\nWith HTC\u2019s vibrant touch-responsive user interface, TouchFLO\u2122 3D, and ultra-fast HSDPA internet connectivity\u2026 the HTC Touch Diamond offers a rich online experience to rival a notebook computer, allowing you to interact with Google, YouTube, and Wikipedia as freely as you would with a broadband connection.\r\n\r\nYour contacts, favourite music, videos and photos are no longer an uninspired line of text. With TouchFLO 3D, album artwork, video stills and snapshots of your friends\u2019 and family\u2019s faces are brought to life for you to interact, play and launch at your fingertips.\r\n\r\nA 3.2 megapixel auto-focus camera will help you capture the perfect moment in style and with a massive 4GB of internal storage you can keep all the files you need. The integrated ultra-sensitive GPS will help you find your destination as quickly and efficiently as a dedicated satellite navigation unit.\r\n\r\nStyle and substance in a phone are no longer mutually exclusive. The HTC Touch Diamond has arrived.', - 'is_recurring': None, - 'manufacturer': '122', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'model': 'HTC Touch Diamond', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'HTC Touch Diamond', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '750.0000', - 'product_id': '166', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': u'Re-defining the perception of advanced mobile phones\u2026 the HTC Touch Diamond\u2122 signals a giant leap forward in combining hi-tech prowess with intuitive usability and exhilarating design.', - 'sku': 'HTC Touch Diamond', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:22:44', - 'url_key': 'htc-touch-diamond', - 'url_path': 'htc-touch-diamond.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '0.3000'}, - ('ol_catalog_product.info', (166, u'3', None, 'id')): {'activation_information': '', - 'categories': ['8'], - 'color': '24', - 'cost': None, - 'country_of_manufacture': None, - 'created_at': '2008-07-25 02:22:13', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': u'Re-defining the perception of advanced mobile phones\u2026 the HTC Touch Diamond\u2122 signals a giant leap forward in combining hi-tech prowess with intuitive usability and exhilarating design.\r\n\r\nFeaturing a sharp 2.8-inch touch screen housed within a stunning formation of brushed metal and flawless faceted edges, the HTC Touch Diamond is as beautiful to behold as it is to use.\r\n\r\nWith HTC\u2019s vibrant touch-responsive user interface, TouchFLO\u2122 3D, and ultra-fast HSDPA internet connectivity\u2026 the HTC Touch Diamond offers a rich online experience to rival a notebook computer, allowing you to interact with Google, YouTube, and Wikipedia as freely as you would with a broadband connection.\r\n\r\nYour contacts, favourite music, videos and photos are no longer an uninspired line of text. With TouchFLO 3D, album artwork, video stills and snapshots of your friends\u2019 and family\u2019s faces are brought to life for you to interact, play and launch at your fingertips.\r\n\r\nA 3.2 megapixel auto-focus camera will help you capture the perfect moment in style and with a massive 4GB of internal storage you can keep all the files you need. The integrated ultra-sensitive GPS will help you find your destination as quickly and efficiently as a dedicated satellite navigation unit.\r\n\r\nStyle and substance in a phone are no longer mutually exclusive. The HTC Touch Diamond has arrived.', - 'dimension': '102 mm (L) X 51 mm (W) X 11.35 mm (T)', - 'enable_googlecheckout': None, - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'in_depth': u'Re-defining the perception of advanced mobile phones\u2026 the HTC Touch Diamond\u2122 signals a giant leap forward in combining hi-tech prowess with intuitive usability and exhilarating design.\r\n\r\nFeaturing a sharp 2.8-inch touch screen housed within a stunning formation of brushed metal and flawless faceted edges, the HTC Touch Diamond is as beautiful to behold as it is to use.\r\n\r\nWith HTC\u2019s vibrant touch-responsive user interface, TouchFLO\u2122 3D, and ultra-fast HSDPA internet connectivity\u2026 the HTC Touch Diamond offers a rich online experience to rival a notebook computer, allowing you to interact with Google, YouTube, and Wikipedia as freely as you would with a broadband connection.\r\n\r\nYour contacts, favourite music, videos and photos are no longer an uninspired line of text. With TouchFLO 3D, album artwork, video stills and snapshots of your friends\u2019 and family\u2019s faces are brought to life for you to interact, play and launch at your fingertips.\r\n\r\nA 3.2 megapixel auto-focus camera will help you capture the perfect moment in style and with a massive 4GB of internal storage you can keep all the files you need. The integrated ultra-sensitive GPS will help you find your destination as quickly and efficiently as a dedicated satellite navigation unit.\r\n\r\nStyle and substance in a phone are no longer mutually exclusive. The HTC Touch Diamond has arrived.', - 'is_recurring': None, - 'manufacturer': '122', - 'meta_description': '', - 'meta_keyword': '', - 'meta_title': '', - 'minimal_price': None, - 'model': 'HTC Touch Diamond', - 'msrp': None, - 'msrp_display_actual_price_type': None, - 'msrp_enabled': None, - 'name': 'HTC Touch Diamond', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '750.0000', - 'product_id': '166', - 'recurring_profile': None, - 'required_options': '0', - 'set': '38', - 'short_description': u'Re-defining the perception of advanced mobile phones\u2026 the HTC Touch Diamond\u2122 signals a giant leap forward in combining hi-tech prowess with intuitive usability and exhilarating design.', - 'sku': 'HTC Touch Diamond', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2008-07-25 02:22:44', - 'url_key': 'htc-touch-diamond', - 'url_path': 'htc-touch-diamond.html', - 'visibility': '4', - 'websites': ['1'], - 'weight': '0.3000'}, - ('catalog_product.list', (frozenset([]),)): [{'category_ids': ['8'], - 'name': 'Nokia 2610 Phone', - 'product_id': '16', - 'set': '38', - 'sku': 'n2610', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['8'], - 'name': 'BlackBerry 8100 Pearl', - 'product_id': '17', - 'set': '38', - 'sku': 'bb8100', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['8'], - 'name': 'Sony Ericsson W810i', - 'product_id': '18', - 'set': '38', - 'sku': 'sw810i', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['8'], - 'name': 'AT&T 8525 PDA', - 'product_id': '19', - 'set': '38', - 'sku': '8525PDA', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['8'], - 'name': 'Samsung MM-A900M Ace', - 'product_id': '20', - 'set': '38', - 'sku': 'MM-A900M', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['15', '28'], - 'name': 'Apple MacBook Pro MA464LL/A 15.4" Notebook PC', - 'product_id': '25', - 'set': '39', - 'sku': 'MA464LL/A', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['15', '28'], - 'name': 'Acer Ferrari 3200 Notebook Computer PC', - 'product_id': '26', - 'set': '39', - 'sku': 'LX.FR206.001', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': [], - 'name': 'Sony VAIO VGN-TXN27N/B 11.1" Notebook PC', - 'product_id': '27', - 'set': '39', - 'sku': 'VGN-TXN27N/B', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['15', '28'], - 'name': 'Toshiba M285-E 14"', - 'product_id': '28', - 'set': '39', - 'sku': 'M285-E', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': [], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '29', - 'set': '40', - 'sku': 'cn_3', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'product_id': '30', - 'set': '40', - 'sku': 'asc_8', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Steven by Steve Madden Pryme Pump', - 'product_id': '31', - 'set': '40', - 'sku': 'steve_4', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': "Nine West Women's Lucero Pump", - 'product_id': '32', - 'set': '40', - 'sku': 'nine_3', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'product_id': '33', - 'set': '40', - 'sku': 'ecco_3', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'product_id': '34', - 'set': '40', - 'sku': 'ken_8', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'product_id': '35', - 'set': '41', - 'sku': 'coal_sm', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'product_id': '36', - 'set': '41', - 'sku': 'ink_sm', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'The Only Children: Paisley T-Shirt', - 'product_id': '37', - 'set': '41', - 'sku': 'oc_sm', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'product_id': '38', - 'set': '41', - 'sku': 'zol_r_sm', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['19'], - 'name': 'The Get Up Kids: Band Camp Pullover Hoodie', - 'product_id': '39', - 'set': '41', - 'sku': '4fasd5f5', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['23'], - 'name': 'Akio Dresser', - 'product_id': '41', - 'set': '42', - 'sku': '384822', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['23'], - 'name': 'Barcelona Bamboo Platform Bed', - 'product_id': '42', - 'set': '42', - 'sku': 'bar1234', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['26'], - 'name': 'Canon Digital Rebel XT 8MP Digital SLR Camera', - 'product_id': '44', - 'set': '44', - 'sku': 'Rebel XT', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['26'], - 'name': ' Argus QC-2185 Quick Click 5MP Digital Camera', - 'product_id': '45', - 'set': '44', - 'sku': 'QC-2185', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['12', '26'], - 'name': ' Olympus Stylus 750 7.1MP Digital Camera', - 'product_id': '46', - 'set': '44', - 'sku': '750', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['26'], - 'name': 'Canon PowerShot A630 8MP Digital Camera with 4x Optical Zoom', - 'product_id': '47', - 'set': '44', - 'sku': 'A630', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['26'], - 'name': 'Kodak EasyShare C530 5MP Digital Camera', - 'product_id': '48', - 'set': '44', - 'sku': 'C530', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Anashria Womens Premier Leather Sandal', - 'product_id': '49', - 'set': '40', - 'sku': 'ana_9', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['22'], - 'name': 'Ottoman', - 'product_id': '51', - 'set': '42', - 'sku': '1111', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['22'], - 'name': 'Chair', - 'product_id': '52', - 'set': '42', - 'sku': '1112', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['22'], - 'name': 'Couch', - 'product_id': '53', - 'set': '42', - 'sku': '1113', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['22'], - 'name': 'Magento Red Furniture Set', - 'product_id': '54', - 'set': '42', - 'sku': '1114', - 'type': 'grouped', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Anashria Womens Premier Leather Sandal', - 'product_id': '74', - 'set': '40', - 'sku': 'ana_3', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Anashria Womens Premier Leather Sandal', - 'product_id': '75', - 'set': '40', - 'sku': 'ana_4', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Anashria Womens Premier Leather Sandal', - 'product_id': '79', - 'set': '40', - 'sku': 'ana_5', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Anashria Womens Premier Leather Sandal', - 'product_id': '80', - 'set': '40', - 'sku': 'ana_6', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Anashria Womens Premier Leather Sandal', - 'product_id': '81', - 'set': '40', - 'sku': 'ana_7', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Anashria Womens Premier Leather Sandal', - 'product_id': '82', - 'set': '40', - 'sku': 'ana_8', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16', '17'], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '83', - 'set': '40', - 'sku': 'cn', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': ['16', '17'], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '84', - 'set': '40', - 'sku': 'cn_4', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16', '17'], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '85', - 'set': '40', - 'sku': 'cn_5', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16', '17'], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '86', - 'set': '40', - 'sku': 'cn_6', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16', '17'], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '87', - 'set': '40', - 'sku': 'cn_7', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16', '17'], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '88', - 'set': '40', - 'sku': 'cn_m8', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16', '17'], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '89', - 'set': '40', - 'sku': 'cn_m9', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16', '17'], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '90', - 'set': '40', - 'sku': 'cn_m10', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16', '17'], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '91', - 'set': '40', - 'sku': 'cn_m11', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16', '17'], - 'name': 'CN Clogs Beach/Garden Clog', - 'product_id': '92', - 'set': '40', - 'sku': 'cn_m12', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'product_id': '93', - 'set': '40', - 'sku': 'asc', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'product_id': '94', - 'set': '40', - 'sku': 'asc_9', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'product_id': '95', - 'set': '40', - 'sku': 'asc_10', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'product_id': '96', - 'set': '40', - 'sku': 'asc_11', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': u"ASICS\xae Men's GEL-Kayano\xae XII", - 'product_id': '97', - 'set': '40', - 'sku': 'asc_12', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'product_id': '98', - 'set': '40', - 'sku': 'ken', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'product_id': '99', - 'set': '40', - 'sku': 'ken_9', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'product_id': '100', - 'set': '40', - 'sku': 'ken_10', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'product_id': '101', - 'set': '40', - 'sku': 'ken_11', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['16'], - 'name': "Kenneth Cole New York Men's Con-verge Slip-on", - 'product_id': '102', - 'set': '40', - 'sku': 'ken_12', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Steven by Steve Madden Pryme Pump', - 'product_id': '103', - 'set': '40', - 'sku': 'steve', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Steven by Steve Madden Pryme Pump', - 'product_id': '104', - 'set': '40', - 'sku': 'steve_5', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Steven by Steve Madden Pryme Pump', - 'product_id': '105', - 'set': '40', - 'sku': 'steve_6', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Steven by Steve Madden Pryme Pump', - 'product_id': '106', - 'set': '40', - 'sku': 'steve_7', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Steven by Steve Madden Pryme Pump', - 'product_id': '107', - 'set': '40', - 'sku': 'steve_8', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': "Nine West Women's Lucero Pump", - 'product_id': '108', - 'set': '40', - 'sku': 'nine', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': "Nine West Women's Lucero Pump", - 'product_id': '109', - 'set': '40', - 'sku': 'nine_4', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': "Nine West Women's Lucero Pump", - 'product_id': '110', - 'set': '40', - 'sku': 'nine_5', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': "Nine West Women's Lucero Pump", - 'product_id': '111', - 'set': '40', - 'sku': 'nine_6', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'product_id': '112', - 'set': '40', - 'sku': 'ecco', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'product_id': '113', - 'set': '40', - 'sku': 'ecco_4', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'product_id': '114', - 'set': '40', - 'sku': 'ecco_5', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'ECCO Womens Golf Flexor Golf Shoe', - 'product_id': '115', - 'set': '40', - 'sku': 'ecco_6', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'product_id': '117', - 'set': '41', - 'sku': 'coal_md', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'product_id': '118', - 'set': '41', - 'sku': 'coal_lrg', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Coalesce: Functioning On Impatience T-Shirt', - 'product_id': '119', - 'set': '41', - 'sku': 'coal_1', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'product_id': '120', - 'set': '41', - 'sku': 'ink', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'product_id': '121', - 'set': '41', - 'sku': 'ink_med', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'product_id': '122', - 'set': '41', - 'sku': 'ink_lrg', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'The Only Children: Paisley T-Shirt', - 'product_id': '123', - 'set': '41', - 'sku': 'oc', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'The Only Children: Paisley T-Shirt', - 'product_id': '124', - 'set': '41', - 'sku': 'oc_med', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'The Only Children: Paisley T-Shirt', - 'product_id': '125', - 'set': '41', - 'sku': 'oc_lrg', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'product_id': '126', - 'set': '41', - 'sku': 'zol', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'product_id': '127', - 'set': '41', - 'sku': 'zol_g_sm', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'product_id': '128', - 'set': '41', - 'sku': 'zol_r_med', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'product_id': '129', - 'set': '41', - 'sku': 'zol_g_med', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'product_id': '130', - 'set': '41', - 'sku': 'zol_r_lrg', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['4'], - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'product_id': '131', - 'set': '41', - 'sku': 'zol_g_lrg', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['25'], - 'name': 'SLR Camera Tripod', - 'product_id': '132', - 'set': '9', - 'sku': 'ac674', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['25'], - 'name': 'Universal Camera Case', - 'product_id': '133', - 'set': '9', - 'sku': 'ac9003', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['25'], - 'name': 'Universal Camera Charger', - 'product_id': '134', - 'set': '9', - 'sku': 'ac-66332', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['17'], - 'name': 'Anashria Womens Premier Leather Sandal', - 'product_id': '135', - 'set': '40', - 'sku': 'ana', - 'type': 'configurable', - 'website_ids': ['1']}, - {'category_ids': [], - 'name': 'Zolof The Rock And Roll Destroyer: LOL Cat T-shirt', - 'product_id': '137', - 'set': '41', - 'sku': 'zol_b_med', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['32'], - 'name': 'Apevia Black X-Cruiser Case ATX Mid-Tower Case (Default)', - 'product_id': '138', - 'set': '9', - 'sku': 'apevia-black', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['32'], - 'name': 'NZXT Lexa Silver Aluminum ATX Mid-Tower Case (Default)', - 'product_id': '139', - 'set': '9', - 'sku': 'nzxtlexa', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['15', '31'], - 'name': 'Crucial 2GB PC4200 DDR2 533MHz Memory', - 'product_id': '140', - 'set': '58', - 'sku': '2gbdimm', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['15', '31'], - 'name': 'Crucial 1GB PC4200 DDR2 533MHz Memory', - 'product_id': '141', - 'set': '58', - 'sku': '1gbdimm', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': [], - 'name': 'One Year Extended Warranty - Parts and Labor', - 'product_id': '142', - 'set': '59', - 'sku': '1yr_p_l', - 'type': 'virtual', - 'website_ids': ['1']}, - {'category_ids': ['15', '31'], - 'name': 'Crucial 512MB PC4200 DDR2 533MHz Memory', - 'product_id': '143', - 'set': '58', - 'sku': '512dimm', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': [], - 'name': 'Two Year Extended Warranty - Parts and Labor', - 'product_id': '144', - 'set': '59', - 'sku': '2yr_p_l', - 'type': 'virtual', - 'website_ids': ['1']}, - {'category_ids': ['33'], - 'name': 'AMD Phenom X4 9850 Black Ed. 2.50GHz Retail', - 'product_id': '145', - 'set': '60', - 'sku': 'amdphenom', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': [], - 'name': 'Three Year Extended Warranty - Parts and Labor', - 'product_id': '146', - 'set': '59', - 'sku': '3yr_p_l', - 'type': 'virtual', - 'website_ids': ['1']}, - {'category_ids': ['30'], - 'name': '22" Syncmaster LCD Monitor', - 'product_id': '147', - 'set': '61', - 'sku': '226bw', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['33'], - 'name': 'AMD A64 X2 3800+ 2.0GHz OEM', - 'product_id': '148', - 'set': '60', - 'sku': 'amda64', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['29'], - 'name': 'Western Digital - 1TB HD - 7200RPM', - 'product_id': '149', - 'set': '62', - 'sku': '1tb7200', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['29'], - 'name': 'Western Digital 500GB HD - 7200RPM', - 'product_id': '150', - 'set': '62', - 'sku': '500gb7200', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['33'], - 'name': 'Intel C2D E8400 3.0GHz Retail', - 'product_id': '151', - 'set': '60', - 'sku': 'intelc2d', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['30'], - 'name': '24" Widescreen Flat-Panel LCD Monitor', - 'product_id': '152', - 'set': '61', - 'sku': 'W2452T-TF', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['33'], - 'name': 'Intel Core 2 Extreme QX9775 3.20GHz Retail', - 'product_id': '153', - 'set': '60', - 'sku': 'intelcore2extreme', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['29'], - 'name': 'Seagate 500GB HD - 5400RPM', - 'product_id': '154', - 'set': '62', - 'sku': '500gb5400', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['29'], - 'name': 'Seagate 250GB HD - 5400RPM', - 'product_id': '155', - 'set': '62', - 'sku': '250gb5400', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['30'], - 'name': '19" Widescreen Flat-Panel LCD Monitor', - 'product_id': '156', - 'set': '61', - 'sku': 'W1952TQ-TF', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['30'], - 'name': '30" Flat-Panel TFT-LCD Cinema HD Monitor', - 'product_id': '157', - 'set': '61', - 'sku': 'M9179LL', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['28'], - 'name': 'Sony VAIO 11.1" Notebook PC', - 'product_id': '158', - 'set': '39', - 'sku': 'VGN-TXN27N/BW', - 'type': 'bundle', - 'website_ids': ['1']}, - {'category_ids': ['34'], - 'name': 'Microsoft Natural Ergonomic Keyboard 4000', - 'product_id': '159', - 'set': '9', - 'sku': 'microsoftnatural', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['34'], - 'name': 'Logitech Cordless Optical Trackman', - 'product_id': '160', - 'set': '9', - 'sku': 'logitechcord', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['34'], - 'name': 'Logitech diNovo Edge Keyboard', - 'product_id': '161', - 'set': '9', - 'sku': 'logidinovo', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['34'], - 'name': 'Microsoft Wireless Optical Mouse 5000', - 'product_id': '162', - 'set': '9', - 'sku': 'micronmouse5000', - 'type': 'simple', - 'website_ids': ['1']}, - {'category_ids': ['15', '27'], - 'name': 'Computer', - 'product_id': '163', - 'set': '9', - 'sku': 'computer', - 'type': 'bundle', - 'website_ids': ['1']}, - {'category_ids': ['27'], - 'name': 'Gaming Computer', - 'product_id': '164', - 'set': '9', - 'sku': 'computer_fixed', - 'type': 'bundle', - 'website_ids': ['1']}, - {'category_ids': ['27'], - 'name': 'My Computer', - 'product_id': '165', - 'set': '39', - 'sku': 'mycomputer', - 'type': 'bundle', - 'website_ids': ['1']}, - {'category_ids': ['8'], - 'name': 'HTC Touch Diamond', - 'product_id': '166', - 'set': '38', - 'sku': 'HTC Touch Diamond', - 'type': 'simple', - 'website_ids': ['1']}], - ('customer.info', (1,)): {'confirmation': None, - 'created_at': '2007-08-30 23:23:13', - 'created_in': None, - 'customer_id': '1', - 'default_billing': None, - 'default_shipping': None, - 'disable_auto_group_change': '0', - 'dob': None, - 'email': 'john.doe@example.com', - 'firstname': 'John', - 'gender': None, - 'group_id': '1', - 'increment_id': '000000001', - 'lastname': 'Doe', - 'middlename': '', - 'password_hash': '22f1f46a5a1d7032b306109e69b21a9a:NR', - 'prefix': '', - 'rp_token': None, - 'rp_token_created_at': None, - 'store_id': '1', - 'suffix': '', - 'taxvat': '', - 'updated_at': '2013-04-09 16:06:11', - 'website_id': '1'}, - ('customer_address.list', (frozenset([('customer_id', frozenset([('eq', '1')]))]),)): [], - ('ol_customer.search', (frozenset([('website_id', frozenset([('in', (u'0',))]))]),)): [], - ('ol_customer.search', (frozenset([('website_id', frozenset([('in', (u'1',))]))]),)): ['1'], - ('ol_customer_groups.info', (0,)): {'customer_group_code': 'NOT LOGGED IN', - 'customer_group_id': '0', - 'tax_class_id': '3'}, - ('ol_customer_groups.info', (1,)): {'customer_group_code': 'General', - 'customer_group_id': '1', - 'tax_class_id': '3'}, - ('ol_customer_groups.info', (2,)): {'customer_group_code': 'Wholesale', - 'customer_group_id': '2', - 'tax_class_id': '3'}, - ('ol_customer_groups.info', (3,)): {'customer_group_code': 'Retailer', - 'customer_group_id': '3', - 'tax_class_id': '3'}, - ('ol_customer_groups.info', (4,)): {'customer_group_code': 'QAAAA', - 'customer_group_id': '4', - 'tax_class_id': '3'}, - ('ol_customer_groups.list', (frozenset([]),)): [{'customer_group_code': 'NOT LOGGED IN', - 'customer_group_id': '0', - 'tax_class_id': '3'}, - {'customer_group_code': 'General', - 'customer_group_id': '1', - 'tax_class_id': '3'}, - {'customer_group_code': 'Wholesale', - 'customer_group_id': '2', - 'tax_class_id': '3'}, - {'customer_group_code': 'Retailer', - 'customer_group_id': '3', - 'tax_class_id': '3'}, - {'customer_group_code': 'QAAAA', - 'customer_group_id': '4', - 'tax_class_id': '3'}], - ('ol_groups.info', (0,)): {'default_store_id': '0', - 'group_id': '0', - 'name': 'Default', - 'root_category_id': '0', - 'website_id': '0'}, - ('ol_groups.info', (1,)): {'default_store_id': '1', - 'group_id': '1', - 'name': 'Main Store', - 'root_category_id': '3', - 'website_id': '1'}, - ('ol_groups.search', (frozenset([]),)): ['0', '1'], - ('ol_storeviews.info', (0,)): {'code': 'admin', - 'group_id': '0', - 'is_active': '1', - 'name': 'Admin', - 'sort_order': '0', - 'store_id': '0', - 'website_id': '0'}, - ('ol_storeviews.info', (1,)): {'code': 'default', - 'group_id': '1', - 'is_active': '1', - 'name': 'English', - 'sort_order': '0', - 'store_id': '1', - 'website_id': '1'}, - ('ol_storeviews.info', (2,)): {'code': 'german', - 'group_id': '1', - 'is_active': '1', - 'name': 'German', - 'sort_order': '0', - 'store_id': '2', - 'website_id': '1'}, - ('ol_storeviews.info', (3,)): {'code': 'french', - 'group_id': '1', - 'is_active': '1', - 'name': 'French', - 'sort_order': '0', - 'store_id': '3', - 'website_id': '1'}, - ('ol_storeviews.search', (frozenset([]),)): ['0', '1', '2', '3'], - ('ol_websites.info', (0,)): {'code': 'admin', - 'default_group_id': '0', - 'is_default': '0', - 'name': 'Admin', - 'sort_order': '0', - 'website_id': '0'}, - ('ol_websites.info', (1,)): {'code': 'base', - 'default_group_id': '1', - 'is_default': '1', - 'name': 'Main Website', - 'sort_order': '0', - 'website_id': '1'}, - ('ol_websites.search', (frozenset([]),)): ['0', '1'], - ('product_media.list', (16, None, 'id')): [{'exclude': '1', - 'file': '/n/o/nokia-2610-phone-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/n/o/nokia-2610-phone-2.jpg'}, - {'exclude': '0', - 'file': '/n/o/nokia-2610-phone-1.jpg', - 'label': '', - 'position': '1', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/n/o/nokia-2610-phone-1.jpg'}, - {'exclude': '0', - 'file': '/n/o/nokia-2610-phone.jpg', - 'label': '', - 'position': '2', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/n/o/nokia-2610-phone.jpg'}], - ('product_media.list', (17, None, 'id')): [{'exclude': '1', - 'file': '/b/l/blackberry-8100-pearl-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/b/l/blackberry-8100-pearl-2.jpg'}, - {'exclude': '0', - 'file': '/b/l/blackberry-8100-pearl-1.jpg', - 'label': '', - 'position': '1', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/b/l/blackberry-8100-pearl-1.jpg'}, - {'exclude': '0', - 'file': '/b/l/blackberry-8100-pearl.jpg', - 'label': '', - 'position': '2', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/b/l/blackberry-8100-pearl.jpg'}], - ('product_media.list', (18, None, 'id')): [{'exclude': '0', - 'file': '/s/o/sony-ericsson-w810i.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/o/sony-ericsson-w810i.jpg'}, - {'exclude': '0', - 'file': '/s/o/sony-ericsson-w810i-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/o/sony-ericsson-w810i-1.jpg'}, - {'exclude': '1', - 'file': '/s/o/sony-ericsson-w810i-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/o/sony-ericsson-w810i-2.jpg'}], - ('product_media.list', (19, None, 'id')): [{'exclude': '0', - 'file': '/a/t/at-t-8525-pda.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/t/at-t-8525-pda.jpg'}, - {'exclude': '1', - 'file': '/a/t/at-t-8525-pda-1.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/t/at-t-8525-pda-1.jpg'}], - ('product_media.list', (20, None, 'id')): [{'exclude': '1', - 'file': '/s/a/samsung-mm-a900m-ace.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/a/samsung-mm-a900m-ace.jpg'}], - ('product_media.list', (25, None, 'id')): [{'exclude': '1', - 'file': '/a/p/apple-macbook-pro-ma464ll-a-15-4-notebook-pc.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/p/apple-macbook-pro-ma464ll-a-15-4-notebook-pc.jpg'}], - ('product_media.list', (26, None, 'id')): [{'exclude': '1', - 'file': '/a/c/acer-ferrari-3200-notebook-computer-pc.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/c/acer-ferrari-3200-notebook-computer-pc.jpg'}], - ('product_media.list', (27, None, 'id')): [{'exclude': '1', - 'file': '/s/o/sony-vaio-vgn-txn27n-b-11-1-notebook-pc.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/o/sony-vaio-vgn-txn27n-b-11-1-notebook-pc.jpg'}], - ('product_media.list', (28, None, 'id')): [{'exclude': '1', - 'file': '/t/o/toshiba-m285-e-14.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/o/toshiba-m285-e-14.jpg'}], - ('product_media.list', (29, None, 'id')): [{'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-1.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-3.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-3.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-4.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-4.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-2.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-2.jpg'}], - ('product_media.list', (30, None, 'id')): [{'exclude': '0', - 'file': '/a/s/asics-men-s-gel-kayano-xii.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/s/asics-men-s-gel-kayano-xii.jpg'}, - {'exclude': '0', - 'file': '/a/s/asics-men-s-gel-kayano-xii-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/s/asics-men-s-gel-kayano-xii-1.jpg'}], - ('product_media.list', (31, None, 'id')): [{'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-1.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-3.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-3.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-4.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-4.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-2.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-2.jpg'}], - ('product_media.list', (32, None, 'id')): [{'exclude': '0', - 'file': '/n/i/nine-west-women-s-lucero-pump.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/n/i/nine-west-women-s-lucero-pump.jpg'}, - {'exclude': '0', - 'file': '/n/i/nine-west-women-s-lucero-pump-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/n/i/nine-west-women-s-lucero-pump-1.jpg'}], - ('product_media.list', (33, None, 'id')): [{'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe.jpg'}, - {'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe-1.jpg'}, - {'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe-3.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe-3.jpg'}, - {'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe-4.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe-4.jpg'}, - {'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe-2.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe-2.jpg'}], - ('product_media.list', (34, None, 'id')): [{'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-1.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-2.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-2.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-3.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-3.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-4.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-4.jpg'}], - ('product_media.list', (35, None, 'id')): [{'exclude': '0', - 'file': '/c/o/coalesce-functioning-on-impatience-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/o/coalesce-functioning-on-impatience-t-shirt.jpg'}], - ('product_media.list', (36, None, 'id')): [{'exclude': '0', - 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee.jpg'}], - ('product_media.list', (37, None, 'id')): [{'exclude': '0', - 'file': '/t/h/the-only-children-paisley-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-only-children-paisley-t-shirt.jpg'}, - {'exclude': '1', - 'file': '/t/h/the-only-children-paisley-t-shirt-1.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-only-children-paisley-t-shirt-1.jpg'}, - {'exclude': '1', - 'file': '/t/h/the-only-children-paisley-t-shirt-2.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-only-children-paisley-t-shirt-2.jpg'}, - {'exclude': '1', - 'file': '/t/h/the-only-children-paisley-t-shirt-3.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-only-children-paisley-t-shirt-3.jpg'}], - ('product_media.list', (38, None, 'id')): [{'exclude': '0', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-3.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-3.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg'}], - ('product_media.list', (39, None, 'id')): [{'exclude': '0', - 'file': '/t/h/the-get-up-kids-band-camp-pullover-hoodie.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-get-up-kids-band-camp-pullover-hoodie.jpg'}, - {'exclude': '1', - 'file': '/t/h/the-get-up-kids-band-camp-pullover-hoodie-1.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-get-up-kids-band-camp-pullover-hoodie-1.jpg'}], - ('product_media.list', (41, None, 'id')): [{'exclude': '1', - 'file': '/a/k/akio-dresser.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/k/akio-dresser.jpg'}], - ('product_media.list', (42, None, 'id')): [{'exclude': '1', - 'file': '/b/a/barcelona-bamboo-platform-bed.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/b/a/barcelona-bamboo-platform-bed.jpg'}], - ('product_media.list', (44, None, 'id')): [{'exclude': '0', - 'file': '/c/a/canon-digital-rebel-xt-8mp-digital-slr-camera.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/a/canon-digital-rebel-xt-8mp-digital-slr-camera.jpg'}, - {'exclude': '1', - 'file': '/c/a/canon-digital-rebel-xt-8mp-digital-slr-camera-1.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/a/canon-digital-rebel-xt-8mp-digital-slr-camera-1.jpg'}], - ('product_media.list', (45, None, 'id')): [{'exclude': '1', - 'file': '/a/r/argus-qc-2185-quick-click-5mp-digital-camera-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/r/argus-qc-2185-quick-click-5mp-digital-camera-2.jpg'}, - {'exclude': '0', - 'file': '/a/r/argus-qc-2185-quick-click-5mp-digital-camera.jpg', - 'label': '', - 'position': '1', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/r/argus-qc-2185-quick-click-5mp-digital-camera.jpg'}, - {'exclude': '0', - 'file': '/a/r/argus-qc-2185-quick-click-5mp-digital-camera-1.jpg', - 'label': '', - 'position': '2', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/r/argus-qc-2185-quick-click-5mp-digital-camera-1.jpg'}], - ('product_media.list', (46, None, 'id')): [{'exclude': '0', - 'file': '/o/l/olympus-stylus-750-7-1mp-digital-camera.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/o/l/olympus-stylus-750-7-1mp-digital-camera.jpg'}, - {'exclude': '0', - 'file': '/o/l/olympus-stylus-750-7-1mp-digital-camera-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/o/l/olympus-stylus-750-7-1mp-digital-camera-1.jpg'}, - {'exclude': '1', - 'file': '/o/l/olympus-stylus-750-7-1mp-digital-camera-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/o/l/olympus-stylus-750-7-1mp-digital-camera-2.jpg'}], - ('product_media.list', (47, None, 'id')): [{'exclude': '1', - 'file': '/c/a/canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/a/canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom-2.jpg'}, - {'exclude': '0', - 'file': '/c/a/canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom.jpg', - 'label': '', - 'position': '1', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/a/canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom.jpg'}, - {'exclude': '0', - 'file': '/c/a/canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom-1.jpg', - 'label': '', - 'position': '2', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/a/canon-powershot-a630-8mp-digital-camera-with-4x-optical-zoom-1.jpg'}], - ('product_media.list', (48, None, 'id')): [{'exclude': '0', - 'file': '/k/o/kodak-easyshare-c530-5mp-digital-camera.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/o/kodak-easyshare-c530-5mp-digital-camera.jpg'}, - {'exclude': '0', - 'file': '/k/o/kodak-easyshare-c530-5mp-digital-camera-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/o/kodak-easyshare-c530-5mp-digital-camera-1.jpg'}, - {'exclude': '1', - 'file': '/k/o/kodak-easyshare-c530-5mp-digital-camera-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/o/kodak-easyshare-c530-5mp-digital-camera-2.jpg'}], - ('product_media.list', (49, None, 'id')): [{'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-1.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-3.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-3.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-4.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-4.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-2.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-2.jpg'}], - ('product_media.list', (51, None, 'id')): [{'exclude': '1', - 'file': '/o/t/ottoman.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/o/t/ottoman.jpg'}], - ('product_media.list', (52, None, 'id')): [{'exclude': '1', - 'file': '/c/h/chair.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/h/chair.jpg'}], - ('product_media.list', (53, None, 'id')): [{'exclude': '1', - 'file': '/c/o/couch.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/o/couch.jpg'}], - ('product_media.list', (74, None, 'id')): [{'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-1.jpg'}], - ('product_media.list', (75, None, 'id')): [{'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-1.jpg', - 'label': '', - 'position': '0', - 'types': [], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-1.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-3.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-3.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-4.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-4.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-2.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-2.jpg'}], - ('product_media.list', (79, None, 'id')): [{'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-1.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-2.jpg'}], - ('product_media.list', (80, None, 'id')): [{'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-1.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-2.jpg'}], - ('product_media.list', (81, None, 'id')): [{'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-1.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-2.jpg'}], - ('product_media.list', (82, None, 'id')): [{'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-1.jpg'}, - {'exclude': '1', - 'file': '/a/n/anashria-womens-premier-leather-sandal-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/n/anashria-womens-premier-leather-sandal-2.jpg'}], - ('product_media.list', (84, None, 'id')): [{'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-2.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-1.jpg'}], - ('product_media.list', (85, None, 'id')): [{'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-2.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-1.jpg'}], - ('product_media.list', (86, None, 'id')): [{'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-2.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-1.jpg'}], - ('product_media.list', (87, None, 'id')): [{'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-2.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-1.jpg'}], - ('product_media.list', (88, None, 'id')): [{'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-2.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-1.jpg'}], - ('product_media.list', (89, None, 'id')): [{'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-2.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-1.jpg'}], - ('product_media.list', (90, None, 'id')): [{'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-2.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-1.jpg'}], - ('product_media.list', (91, None, 'id')): [{'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-2.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-1.jpg'}], - ('product_media.list', (92, None, 'id')): [{'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-1.jpg'}, - {'exclude': '1', - 'file': '/c/n/cn-clogs-beach-garden-clog-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/n/cn-clogs-beach-garden-clog-2.jpg'}], - ('product_media.list', (94, None, 'id')): [], - ('product_media.list', (95, None, 'id')): [], - ('product_media.list', (96, None, 'id')): [], - ('product_media.list', (97, None, 'id')): [], - ('product_media.list', (99, None, 'id')): [{'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-2.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-1.jpg'}], - ('product_media.list', (100, None, 'id')): [{'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-2.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-1.jpg'}], - ('product_media.list', (101, None, 'id')): [{'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-2.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-1.jpg'}], - ('product_media.list', (102, None, 'id')): [{'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-2.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on.jpg'}, - {'exclude': '1', - 'file': '/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/k/e/kenneth-cole-new-york-men-s-con-verge-slip-on-1.jpg'}], - ('product_media.list', (104, None, 'id')): [{'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-1.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-2.jpg'}], - ('product_media.list', (105, None, 'id')): [{'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-1.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-2.jpg'}], - ('product_media.list', (106, None, 'id')): [{'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-1.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-2.jpg'}], - ('product_media.list', (107, None, 'id')): [{'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-1.jpg'}, - {'exclude': '1', - 'file': '/s/t/steven-by-steve-madden-pryme-pump-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/t/steven-by-steve-madden-pryme-pump-2.jpg'}], - ('product_media.list', (109, None, 'id')): [], - ('product_media.list', (110, None, 'id')): [], - ('product_media.list', (111, None, 'id')): [], - ('product_media.list', (113, None, 'id')): [{'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe.jpg'}, - {'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe-1.jpg'}, - {'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe-2.jpg'}], - ('product_media.list', (114, None, 'id')): [{'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe.jpg'}, - {'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe-1.jpg'}, - {'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe-2.jpg'}], - ('product_media.list', (115, None, 'id')): [{'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe.jpg'}, - {'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe-1.jpg'}, - {'exclude': '1', - 'file': '/e/c/ecco-womens-golf-flexor-golf-shoe-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/e/c/ecco-womens-golf-flexor-golf-shoe-2.jpg'}], - ('product_media.list', (117, None, 'id')): [], - ('product_media.list', (118, None, 'id')): [], - ('product_media.list', (121, None, 'id')): [{'exclude': '1', - 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg'}, - {'exclude': '1', - 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee.jpg'}, - {'exclude': '1', - 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg'}], - ('product_media.list', (122, None, 'id')): [{'exclude': '1', - 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg'}, - {'exclude': '1', - 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee.jpg'}, - {'exclude': '1', - 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg'}], - ('product_media.list', (124, None, 'id')): [{'exclude': '1', - 'file': '/t/h/the-only-children-paisley-t-shirt-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-only-children-paisley-t-shirt-1.jpg'}, - {'exclude': '1', - 'file': '/t/h/the-only-children-paisley-t-shirt-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-only-children-paisley-t-shirt-2.jpg'}, - {'exclude': '1', - 'file': '/t/h/the-only-children-paisley-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-only-children-paisley-t-shirt.jpg'}], - ('product_media.list', (125, None, 'id')): [{'exclude': '1', - 'file': '/t/h/the-only-children-paisley-t-shirt-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-only-children-paisley-t-shirt-1.jpg'}, - {'exclude': '1', - 'file': '/t/h/the-only-children-paisley-t-shirt-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-only-children-paisley-t-shirt-2.jpg'}, - {'exclude': '1', - 'file': '/t/h/the-only-children-paisley-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/t/h/the-only-children-paisley-t-shirt.jpg'}], - ('product_media.list', (127, None, 'id')): [{'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg'}], - ('product_media.list', (128, None, 'id')): [{'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg'}], - ('product_media.list', (129, None, 'id')): [{'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg'}], - ('product_media.list', (130, None, 'id')): [{'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg'}], - ('product_media.list', (131, None, 'id')): [{'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg'}], - ('product_media.list', (132, None, 'id')): [{'exclude': '1', - 'file': '/s/l/slr-camera-tripod.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/l/slr-camera-tripod.jpg'}], - ('product_media.list', (133, None, 'id')): [{'exclude': '1', - 'file': '/u/n/universal-camera-case.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/u/n/universal-camera-case.jpg'}, - {'exclude': '1', - 'file': '/u/n/universal-camera-case-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/u/n/universal-camera-case-1.jpg'}, - {'exclude': '1', - 'file': '/u/n/universal-camera-case-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/u/n/universal-camera-case-2.jpg'}], - ('product_media.list', (134, None, 'id')): [{'exclude': '1', - 'file': '/u/n/universal-camera-charger.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/u/n/universal-camera-charger.jpg'}], - ('product_media.list', (137, None, 'id')): [{'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-2.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg', - 'label': '', - 'position': '0', - 'types': ['image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt.jpg'}, - {'exclude': '1', - 'file': '/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg', - 'label': '', - 'position': '0', - 'types': ['small_image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/z/o/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-1.jpg'}], - ('product_media.list', (138, None, 'id')): [{'exclude': '0', - 'file': '/a/p/apevia-black-x-cruiser-case-atx-mid-tower-case-default.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/p/apevia-black-x-cruiser-case-atx-mid-tower-case-default.jpg'}], - ('product_media.list', (139, None, 'id')): [{'exclude': '0', - 'file': '/n/z/nzxt-lexa-silver-aluminum-atx-mid-tower-case-default.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/n/z/nzxt-lexa-silver-aluminum-atx-mid-tower-case-default.jpg'}], - ('product_media.list', (140, None, 'id')): [{'exclude': '1', - 'file': '/c/r/crucial-2gb-pc4200-ddr2-533mhz-memory.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/r/crucial-2gb-pc4200-ddr2-533mhz-memory.jpg'}], - ('product_media.list', (141, None, 'id')): [{'exclude': '1', - 'file': '/c/r/crucial-1gb-pc4200-ddr2-533mhz-memory.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/r/crucial-1gb-pc4200-ddr2-533mhz-memory.jpg'}], - ('product_media.list', (143, None, 'id')): [{'exclude': '1', - 'file': '/c/r/crucial-512mb-pc4200-ddr2-533mhz-memory.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/c/r/crucial-512mb-pc4200-ddr2-533mhz-memory.jpg'}], - ('product_media.list', (144, None, 'id')): [], - ('product_media.list', (145, None, 'id')): [{'exclude': '1', - 'file': '/a/m/amd-phenom-x4-9850-black-ed-2-50ghz-retail.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/m/amd-phenom-x4-9850-black-ed-2-50ghz-retail.jpg'}], - ('product_media.list', (147, None, 'id')): [{'exclude': '1', - 'file': '/2/2/22-syncmaster-lcd-monitor.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/2/2/22-syncmaster-lcd-monitor.jpg'}], - ('product_media.list', (148, None, 'id')): [{'exclude': '1', - 'file': '/a/m/amd-a64-x2-3800-2-0ghz-oem.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/a/m/amd-a64-x2-3800-2-0ghz-oem.jpg'}], - ('product_media.list', (149, None, 'id')): [{'exclude': '1', - 'file': '/w/e/western-digital-1tb-hd-7200rpm.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/w/e/western-digital-1tb-hd-7200rpm.jpg'}], - ('product_media.list', (150, None, 'id')): [{'exclude': '1', - 'file': '/w/e/western-digital-500gb-hd-7200rpm.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/w/e/western-digital-500gb-hd-7200rpm.jpg'}], - ('product_media.list', (151, None, 'id')): [{'exclude': '1', - 'file': '/i/n/intel-c2d-e8400-3-0ghz-retail.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/i/n/intel-c2d-e8400-3-0ghz-retail.jpg'}], - ('product_media.list', (152, None, 'id')): [{'exclude': '1', - 'file': '/2/4/24-widescreen-flat-panel-lcd-monitor.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/2/4/24-widescreen-flat-panel-lcd-monitor.jpg'}], - ('product_media.list', (153, None, 'id')): [{'exclude': '1', - 'file': '/i/n/intel-core-2-extreme-qx9775-3-20ghz-retail.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/i/n/intel-core-2-extreme-qx9775-3-20ghz-retail.jpg'}], - ('product_media.list', (154, None, 'id')): [{'exclude': '1', - 'file': '/s/e/seagate-500gb-hd-5400rpm.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/e/seagate-500gb-hd-5400rpm.jpg'}], - ('product_media.list', (155, None, 'id')): [{'exclude': '1', - 'file': '/s/e/seagate-250gb-hd-5400rpm.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/s/e/seagate-250gb-hd-5400rpm.jpg'}], - ('product_media.list', (156, None, 'id')): [{'exclude': '1', - 'file': '/1/9/19-widescreen-flat-panel-lcd-monitor.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/1/9/19-widescreen-flat-panel-lcd-monitor.jpg'}], - ('product_media.list', (157, None, 'id')): [{'exclude': '1', - 'file': '/3/0/30-flat-panel-tft-lcd-cinema-hd-monitor.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/3/0/30-flat-panel-tft-lcd-cinema-hd-monitor.jpg'}], - ('product_media.list', (159, None, 'id')): [{'exclude': '1', - 'file': '/m/i/microsoft-natural-ergonomic-keyboard-4000.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/m/i/microsoft-natural-ergonomic-keyboard-4000.jpg'}], - ('product_media.list', (160, None, 'id')): [{'exclude': '1', - 'file': '/l/o/logitech-cordless-optical-trackman.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/l/o/logitech-cordless-optical-trackman.jpg'}], - ('product_media.list', (161, None, 'id')): [{'exclude': '1', - 'file': '/l/o/logitech-dinovo-edge-keyboard.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/l/o/logitech-dinovo-edge-keyboard.jpg'}], - ('product_media.list', (162, None, 'id')): [{'exclude': '1', - 'file': '/m/i/microsoft-wireless-optical-mouse-5000.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/m/i/microsoft-wireless-optical-mouse-5000.jpg'}], - ('product_media.list', (166, None, 'id')): [{'exclude': '1', - 'file': '/h/t/htc-touch-diamond.jpg', - 'label': '', - 'position': '1', - 'types': ['thumbnail', - 'small_image', - 'image'], - 'url': 'http://yushan.wrk.lsn:9100/media/catalog/product/h/t/htc-touch-diamond.jpg'}], - ('sales_order.search', (frozenset([('filters', frozenset([('store_id', frozenset([('in', (u'1',))])), ('state', frozenset([('neq', 'canceled')])), ('created_at', frozenset([('gt', '2013/04/09 16:24:11')]))])), ('imported', False)]),)): [], - ('sales_order.search', (frozenset([('filters', frozenset([('store_id', frozenset([('in', (u'2',))])), ('state', frozenset([('neq', 'canceled')])), ('created_at', frozenset([('gt', '2013/04/09 16:24:11')]))])), ('imported', False)]),)): [], - ('sales_order.search', (frozenset([('filters', frozenset([('store_id', frozenset([('in', (u'0',))])), ('state', frozenset([('neq', 'canceled')])), ('created_at', frozenset([('gt', '2013/04/09 16:24:10')]))])), ('imported', False)]),)): [], - ('sales_order.search', (frozenset([('filters', frozenset([('created_at', frozenset([('gt', '2013/04/09 16:24:12')])), ('state', frozenset([('neq', 'canceled')])), ('store_id', frozenset([('in', (u'3',))]))])), ('imported', False)]),)): [], - ('sales_order.info', (900000691, )): {'adjustment_negative': None, - 'adjustment_positive': None, - 'applied_rule_ids': None, - 'base_adjustment_negative': None, - 'base_adjustment_positive': None, - 'base_currency_code': 'EUR', - 'base_custbalance_amount': None, - 'base_discount_amount': '0.0000', - 'base_discount_canceled': None, - 'base_discount_invoiced': None, - 'base_discount_refunded': None, - 'base_grand_total': '2459.9800', - 'base_hidden_tax_amount': '0.0000', - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_shipping_amount': '10.0000', - 'base_shipping_canceled': None, - 'base_shipping_discount_amount': '0.0000', - 'base_shipping_hidden_tax_amnt': '0.0000', - 'base_shipping_hidden_tax_amount': '0.0000', - 'base_shipping_incl_tax': '10.0000', - 'base_shipping_invoiced': None, - 'base_shipping_refunded': None, - 'base_shipping_tax_amount': '0.0000', - 'base_shipping_tax_refunded': None, - 'base_subtotal': '2449.9800', - 'base_subtotal_canceled': None, - 'base_subtotal_incl_tax': '2449.9800', - 'base_subtotal_invoiced': None, - 'base_subtotal_refunded': None, - 'base_tax_amount': '0.0000', - 'base_tax_canceled': None, - 'base_tax_invoiced': None, - 'base_tax_refunded': None, - 'base_to_global_rate': '1.0000', - 'base_to_order_rate': '1.0000', - 'base_total_canceled': None, - 'base_total_due': None, - 'base_total_invoiced': None, - 'base_total_invoiced_cost': None, - 'base_total_offline_refunded': None, - 'base_total_online_refunded': None, - 'base_total_paid': None, - 'base_total_qty_ordered': None, - 'base_total_refunded': None, - 'billing_address': {'address_id': '1381', - 'address_type': 'billing', - 'city': 'Guillotnec', - 'company': 'Blondel Royer S.A.S.', - 'country_id': 'FR', - 'customer_address_id': '451', - 'customer_id': '1', - 'email': 'renard.aimee@example.net', - 'fax': None, - 'firstname': 'Couturier', - 'gift_message_id': None, - 'lastname': 'Manon', - 'middlename': None, - 'parent_id': '691', - 'postcode': '96513', - 'prefix': None, - 'quote_address_id': None, - 'region': u'Puy-de-D\xf4me', - 'region_id': '245', - 'street': u'rue \xc9lisabeth Faivre', - 'suffix': None, - 'tax_id': None, - 'telephone': '01 57 83 21 56', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'billing_address_id': '1381', - 'can_ship_partially': None, - 'can_ship_partially_item': None, - 'coupon_code': None, - 'coupon_rule_name': None, - 'created_at': time.strftime(FMT), - 'currency_base_id': None, - 'currency_code': None, - 'currency_rate': None, - 'custbalance_amount': None, - 'customer_dob': None, - 'customer_email': 'renard.aimee@example.net', - 'customer_firstname': 'Laurence', - 'customer_gender': None, - 'customer_group_id': '1', - 'customer_id': '1', - 'customer_is_guest': '0', - 'customer_lastname': 'Pages', - 'customer_middlename': None, - 'customer_note': None, - 'customer_note_notify': '0', - 'customer_prefix': None, - 'customer_suffix': None, - 'customer_taxvat': None, - 'discount_amount': '0.0000', - 'discount_canceled': None, - 'discount_description': None, - 'discount_invoiced': None, - 'discount_refunded': None, - 'edit_increment': None, - 'email_sent': None, - 'ext_customer_id': None, - 'ext_order_id': None, - 'forced_do_shipment_with_invoice': None, - 'forced_shipment_with_invoice': None, - 'gift_message_id': None, - 'global_currency_code': 'EUR', - 'grand_total': '2459.9800', - 'hidden_tax_amount': '0.0000', - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'hold_before_state': None, - 'hold_before_status': None, - 'imported': '0', - 'increment_id': '900000691', - 'is_hold': None, - 'is_multi_payment': None, - 'is_virtual': '0', - 'items': [{'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': None, - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_original_price': '2049.9900', - 'base_price': '2049.9900', - 'base_price_incl_tax': '2049.9900', - 'base_row_invoiced': '0.0000', - 'base_row_total': '2049.9900', - 'base_row_total_incl_tax': '2049.9900', - 'base_tax_amount': '0.0000', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '0.0000', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-04-23 07:38:55', - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '1713', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': 'Intel Core 2 Extreme QX9775 3.20GHz Retail', - 'no_discount': '0', - 'order_id': '691', - 'original_price': '2049.9900', - 'parent_item_id': None, - 'price': '2049.9900', - 'price_incl_tax': '2049.9900', - 'product_id': '153', - 'product_options': 'a:1:{s:15:"info_buyRequest";a:2:{s:3:"qty";s:6:"1.0000";s:7:"options";a:0:{}}}', - 'product_type': 'simple', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '0.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '1716', - 'row_invoiced': '0.0000', - 'row_total': '2049.9900', - 'row_total_incl_tax': '2049.9900', - 'row_weight': '1.0000', - 'sku': 'intelcore2extreme', - 'store_id': '1', - 'tax_amount': '0.0000', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '0.0000', - 'tax_percent': '0.0000', - 'tax_refunded': None, - 'updated_at': '2013-04-23 07:38:55', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': '1.0000'}, - {'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': None, - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_original_price': '399.9900', - 'base_price': '399.9900', - 'base_price_incl_tax': '399.9900', - 'base_row_invoiced': '0.0000', - 'base_row_total': '399.9900', - 'base_row_total_incl_tax': '399.9900', - 'base_tax_amount': '0.0000', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '0.0000', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-04-23 07:38:55', - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '1714', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': '19" Widescreen Flat-Panel LCD Monitor', - 'no_discount': '0', - 'order_id': '691', - 'original_price': '399.9900', - 'parent_item_id': None, - 'price': '399.9900', - 'price_incl_tax': '399.9900', - 'product_id': '156', - 'product_options': 'a:1:{s:15:"info_buyRequest";a:2:{s:3:"qty";s:6:"1.0000";s:7:"options";a:0:{}}}', - 'product_type': 'simple', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '0.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '1717', - 'row_invoiced': '0.0000', - 'row_total': '399.9900', - 'row_total_incl_tax': '399.9900', - 'row_weight': '1.0000', - 'sku': 'W1952TQ-TF', - 'store_id': '1', - 'tax_amount': '0.0000', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '0.0000', - 'tax_percent': '0.0000', - 'tax_refunded': None, - 'updated_at': '2013-04-23 07:38:55', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': '1.0000'}], - 'order_currency_code': 'EUR', - 'order_id': '691', - 'original_increment_id': None, - 'payment': {'account_status': None, - 'additional_data': None, - 'additional_information': {'instructions': ''}, - 'address_status': None, - 'amount': None, - 'amount_authorized': None, - 'amount_canceled': None, - 'amount_ordered': '2459.9800', - 'amount_paid': None, - 'amount_refunded': None, - 'anet_trans_method': None, - 'base_amount_authorized': None, - 'base_amount_canceled': None, - 'base_amount_ordered': '2459.9800', - 'base_amount_paid': None, - 'base_amount_paid_online': None, - 'base_amount_refunded': None, - 'base_amount_refunded_online': None, - 'base_shipping_amount': '10.0000', - 'base_shipping_captured': None, - 'base_shipping_refunded': None, - 'cc_approval': None, - 'cc_avs_status': None, - 'cc_cid_status': None, - 'cc_debug_request_body': None, - 'cc_debug_response_body': None, - 'cc_debug_response_serialized': None, - 'cc_exp_month': '0', - 'cc_exp_year': '0', - 'cc_last4': None, - 'cc_number_enc': None, - 'cc_owner': None, - 'cc_raw_request': None, - 'cc_raw_response': None, - 'cc_secure_verify': None, - 'cc_ss_issue': None, - 'cc_ss_start_month': '0', - 'cc_ss_start_year': '0', - 'cc_status': None, - 'cc_status_description': None, - 'cc_trans_id': None, - 'cc_type': None, - 'customer_payment_id': None, - 'cybersource_token': None, - 'echeck_account_name': None, - 'echeck_account_type': None, - 'echeck_bank_name': None, - 'echeck_routing_number': None, - 'echeck_type': None, - 'flo2cash_account_id': None, - 'ideal_issuer_id': None, - 'ideal_issuer_title': None, - 'ideal_transaction_checked': None, - 'last_trans_id': None, - 'method': 'checkmo', - 'parent_id': '691', - 'paybox_question_number': None, - 'paybox_request_number': None, - 'payment_id': '691', - 'po_number': None, - 'protection_eligibility': None, - 'quote_payment_id': None, - 'shipping_amount': '10.0000', - 'shipping_captured': None, - 'shipping_refunded': None}, - 'payment_auth_expiration': None, - 'payment_authorization_amount': None, - 'payment_authorization_expiration': None, - 'paypal_ipn_customer_notified': None, - 'protect_code': '5f579e', - 'quote_address_id': None, - 'quote_id': '697', - 'real_order_id': None, - 'relation_child_id': None, - 'relation_child_real_id': None, - 'relation_parent_id': None, - 'relation_parent_real_id': None, - 'remote_ip': None, - 'shipping_address': {'address_id': '1382', - 'address_type': 'shipping', - 'city': 'Guillotnec', - 'company': 'Blondel Royer S.A.S.', - 'country_id': 'FR', - 'customer_address_id': '451', - 'customer_id': '1', - 'email': 'renard.aimee@example.net', - 'fax': None, - 'firstname': 'Couturier', - 'gift_message_id': None, - 'lastname': 'Manon', - 'middlename': None, - 'parent_id': '691', - 'postcode': '96513', - 'prefix': None, - 'quote_address_id': None, - 'region': u'Puy-de-D\xf4me', - 'region_id': '245', - 'street': u'rue \xc9lisabeth Faivre', - 'suffix': None, - 'tax_id': None, - 'telephone': '01 57 83 21 56', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'shipping_address_id': '1382', - 'shipping_amount': '10.0000', - 'shipping_canceled': None, - 'shipping_description': 'Flat Rate - Fixed', - 'shipping_discount_amount': '0.0000', - 'shipping_hidden_tax_amount': '0.0000', - 'shipping_incl_tax': '10.0000', - 'shipping_invoiced': None, - 'shipping_method': 'flatrate_flatrate', - 'shipping_refunded': None, - 'shipping_tax_amount': '0.0000', - 'shipping_tax_refunded': None, - 'state': 'new', - 'status': 'pending', - 'status_history': [{'comment': 'I am a sale order, I am a sale order ;)', - 'created_at': '2013-04-23 07:38:55', - 'entity_name': 'order', - 'is_customer_notified': '0', - 'is_visible_on_front': '0', - 'parent_id': '691', - 'status': 'pending', - 'store_id': '1'}], - 'store_currency_code': 'EUR', - 'store_id': '1', - 'store_name': 'Main Website\nMain Store\nEnglish', - 'store_to_base_rate': '1.0000', - 'store_to_order_rate': '1.0000', - 'subtotal': '2449.9800', - 'subtotal_canceled': None, - 'subtotal_incl_tax': '2449.9800', - 'subtotal_invoiced': None, - 'subtotal_refunded': None, - 'tax_amount': '0.0000', - 'tax_canceled': None, - 'tax_invoiced': None, - 'tax_percent': None, - 'tax_refunded': None, - 'total_canceled': None, - 'total_due': None, - 'total_invoiced': None, - 'total_item_count': '2', - 'total_offline_refunded': None, - 'total_online_refunded': None, - 'total_paid': None, - 'total_qty_ordered': '2.0000', - 'total_refunded': None, - 'tracking_numbers': None, - 'updated_at': '2013-04-23 07:38:55', - 'website_id': u'1', - 'weight': '2.0000', - 'x_forwarded_for': None}, - ('sales_order.info', (900000692, )): {'adjustment_negative': None, - 'adjustment_positive': None, - 'applied_rule_ids': None, - 'base_adjustment_negative': None, - 'base_adjustment_positive': None, - 'base_currency_code': 'EUR', - 'base_custbalance_amount': None, - 'base_discount_amount': '0.0000', - 'base_discount_canceled': None, - 'base_discount_invoiced': None, - 'base_discount_refunded': None, - 'base_grand_total': '2459.9800', - 'base_hidden_tax_amount': '0.0000', - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_shipping_amount': '10.0000', - 'base_shipping_canceled': None, - 'base_shipping_discount_amount': '0.0000', - 'base_shipping_hidden_tax_amnt': '0.0000', - 'base_shipping_hidden_tax_amount': '0.0000', - 'base_shipping_incl_tax': '10.0000', - 'base_shipping_invoiced': None, - 'base_shipping_refunded': None, - 'base_shipping_tax_amount': '0.0000', - 'base_shipping_tax_refunded': None, - 'base_subtotal': '2449.9800', - 'base_subtotal_canceled': None, - 'base_subtotal_incl_tax': '2449.9800', - 'base_subtotal_invoiced': None, - 'base_subtotal_refunded': None, - 'base_tax_amount': '0.0000', - 'base_tax_canceled': None, - 'base_tax_invoiced': None, - 'base_tax_refunded': None, - 'base_to_global_rate': '1.0000', - 'base_to_order_rate': '1.0000', - 'base_total_canceled': None, - 'base_total_due': None, - 'base_total_invoiced': None, - 'base_total_invoiced_cost': None, - 'base_total_offline_refunded': None, - 'base_total_online_refunded': None, - 'base_total_paid': None, - 'base_total_qty_ordered': None, - 'base_total_refunded': None, - 'billing_address': {'address_id': '1381', - 'address_type': 'billing', - 'city': 'Guillotnec', - 'company': 'Blondel Royer S.A.S.', - 'country_id': 'FR', - 'customer_address_id': '451', - 'customer_id': '1', - 'email': 'renard.aimee@example.net', - 'fax': None, - 'firstname': 'Couturier', - 'gift_message_id': None, - 'lastname': 'Manon', - 'middlename': None, - 'parent_id': '691', - 'postcode': '96513', - 'prefix': None, - 'quote_address_id': None, - 'region': u'Puy-de-D\xf4me', - 'region_id': '245', - 'street': u'rue \xc9lisabeth Faivre', - 'suffix': None, - 'tax_id': None, - 'telephone': '01 57 83 21 56', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'billing_address_id': '1381', - 'can_ship_partially': None, - 'can_ship_partially_item': None, - 'coupon_code': None, - 'coupon_rule_name': None, - 'created_at': time.strftime(FMT), - 'currency_base_id': None, - 'currency_code': None, - 'currency_rate': None, - 'custbalance_amount': None, - 'customer_dob': None, - 'customer_email': 'renard.aimee@example.net', - 'customer_firstname': 'Laurence', - 'customer_gender': None, - 'customer_group_id': '1', - 'customer_id': '1', - 'customer_is_guest': '0', - 'customer_lastname': 'Pages', - 'customer_middlename': None, - 'customer_note': None, - 'customer_note_notify': '0', - 'customer_prefix': None, - 'customer_suffix': None, - 'customer_taxvat': None, - 'discount_amount': '0.0000', - 'discount_canceled': None, - 'discount_description': None, - 'discount_invoiced': None, - 'discount_refunded': None, - 'edit_increment': None, - 'email_sent': None, - 'ext_customer_id': None, - 'ext_order_id': None, - 'forced_do_shipment_with_invoice': None, - 'forced_shipment_with_invoice': None, - 'gift_message_id': None, - 'global_currency_code': 'EUR', - 'grand_total': '2459.9800', - 'hidden_tax_amount': '0.0000', - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'hold_before_state': None, - 'hold_before_status': None, - 'imported': '0', - 'increment_id': '900000692', - 'is_hold': None, - 'is_multi_payment': None, - 'is_virtual': '0', - 'items': [{'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': None, - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_original_price': '2049.9900', - 'base_price': '2049.9900', - 'base_price_incl_tax': '2049.9900', - 'base_row_invoiced': '0.0000', - 'base_row_total': '2049.9900', - 'base_row_total_incl_tax': '2049.9900', - 'base_tax_amount': '0.0000', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '0.0000', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-04-23 07:38:55', - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '1715', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': 'Intel Core 2 Extreme QX9775 3.20GHz Retail', - 'no_discount': '0', - 'order_id': '691', - 'original_price': '2049.9900', - 'parent_item_id': None, - 'price': '2049.9900', - 'price_incl_tax': '2049.9900', - 'product_id': '153', - 'product_options': 'a:1:{s:15:"info_buyRequest";a:2:{s:3:"qty";s:6:"1.0000";s:7:"options";a:0:{}}}', - 'product_type': 'simple', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '0.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '1716', - 'row_invoiced': '0.0000', - 'row_total': '2049.9900', - 'row_total_incl_tax': '2049.9900', - 'row_weight': '1.0000', - 'sku': 'intelcore2extreme', - 'store_id': '1', - 'tax_amount': '0.0000', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '0.0000', - 'tax_percent': '0.0000', - 'tax_refunded': None, - 'updated_at': '2013-04-23 07:38:55', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': '1.0000'}, - {'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': None, - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_original_price': '399.9900', - 'base_price': '399.9900', - 'base_price_incl_tax': '399.9900', - 'base_row_invoiced': '0.0000', - 'base_row_total': '399.9900', - 'base_row_total_incl_tax': '399.9900', - 'base_tax_amount': '0.0000', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '0.0000', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-04-23 07:38:55', - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '1716', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': '19" Widescreen Flat-Panel LCD Monitor', - 'no_discount': '0', - 'order_id': '691', - 'original_price': '399.9900', - 'parent_item_id': None, - 'price': '399.9900', - 'price_incl_tax': '399.9900', - 'product_id': '156', - 'product_options': 'a:1:{s:15:"info_buyRequest";a:2:{s:3:"qty";s:6:"1.0000";s:7:"options";a:0:{}}}', - 'product_type': 'simple', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '0.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '1717', - 'row_invoiced': '0.0000', - 'row_total': '399.9900', - 'row_total_incl_tax': '399.9900', - 'row_weight': '1.0000', - 'sku': 'W1952TQ-TF', - 'store_id': '1', - 'tax_amount': '0.0000', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '0.0000', - 'tax_percent': '0.0000', - 'tax_refunded': None, - 'updated_at': '2013-04-23 07:38:55', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': '1.0000'}], - 'order_currency_code': 'EUR', - 'order_id': '691', - 'original_increment_id': None, - 'payment': {'account_status': None, - 'additional_data': None, - 'additional_information': {'instructions': ''}, - 'address_status': None, - 'amount': None, - 'amount_authorized': None, - 'amount_canceled': None, - 'amount_ordered': '2459.9800', - 'amount_paid': None, - 'amount_refunded': None, - 'anet_trans_method': None, - 'base_amount_authorized': None, - 'base_amount_canceled': None, - 'base_amount_ordered': '2459.9800', - 'base_amount_paid': None, - 'base_amount_paid_online': None, - 'base_amount_refunded': None, - 'base_amount_refunded_online': None, - 'base_shipping_amount': '10.0000', - 'base_shipping_captured': None, - 'base_shipping_refunded': None, - 'cc_approval': None, - 'cc_avs_status': None, - 'cc_cid_status': None, - 'cc_debug_request_body': None, - 'cc_debug_response_body': None, - 'cc_debug_response_serialized': None, - 'cc_exp_month': '0', - 'cc_exp_year': '0', - 'cc_last4': None, - 'cc_number_enc': None, - 'cc_owner': None, - 'cc_raw_request': None, - 'cc_raw_response': None, - 'cc_secure_verify': None, - 'cc_ss_issue': None, - 'cc_ss_start_month': '0', - 'cc_ss_start_year': '0', - 'cc_status': None, - 'cc_status_description': None, - 'cc_trans_id': None, - 'cc_type': None, - 'customer_payment_id': None, - 'cybersource_token': None, - 'echeck_account_name': None, - 'echeck_account_type': None, - 'echeck_bank_name': None, - 'echeck_routing_number': None, - 'echeck_type': None, - 'flo2cash_account_id': None, - 'ideal_issuer_id': None, - 'ideal_issuer_title': None, - 'ideal_transaction_checked': None, - 'last_trans_id': None, - 'method': 'checkmo', - 'parent_id': '691', - 'paybox_question_number': None, - 'paybox_request_number': None, - 'payment_id': '691', - 'po_number': None, - 'protection_eligibility': None, - 'quote_payment_id': None, - 'shipping_amount': '10.0000', - 'shipping_captured': None, - 'shipping_refunded': None}, - 'payment_auth_expiration': None, - 'payment_authorization_amount': None, - 'payment_authorization_expiration': None, - 'paypal_ipn_customer_notified': None, - 'protect_code': '5f579e', - 'quote_address_id': None, - 'quote_id': '697', - 'real_order_id': None, - 'relation_child_id': None, - 'relation_child_real_id': None, - 'relation_parent_id': None, - 'relation_parent_real_id': None, - 'remote_ip': None, - 'shipping_address': {'address_id': '1382', - 'address_type': 'shipping', - 'city': 'Guillotnec', - 'company': 'Blondel Royer S.A.S.', - 'country_id': 'FR', - 'customer_address_id': '451', - 'customer_id': '1', - 'email': 'renard.aimee@example.net', - 'fax': None, - 'firstname': 'Couturier', - 'gift_message_id': None, - 'lastname': 'Manon', - 'middlename': None, - 'parent_id': '691', - 'postcode': '96513', - 'prefix': None, - 'quote_address_id': None, - 'region': u'Puy-de-D\xf4me', - 'region_id': '245', - 'street': u'rue \xc9lisabeth Faivre', - 'suffix': None, - 'tax_id': None, - 'telephone': '01 57 83 21 56', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'shipping_address_id': '1382', - 'shipping_amount': '10.0000', - 'shipping_canceled': None, - 'shipping_description': 'Flat Rate - Fixed', - 'shipping_discount_amount': '0.0000', - 'shipping_hidden_tax_amount': '0.0000', - 'shipping_incl_tax': '10.0000', - 'shipping_invoiced': None, - 'shipping_method': 'flatrate_flatrate', - 'shipping_refunded': None, - 'shipping_tax_amount': '0.0000', - 'shipping_tax_refunded': None, - 'state': 'new', - 'status': 'pending', - 'status_history': [{'comment': None, - 'created_at': '2013-04-23 07:38:55', - 'entity_name': 'order', - 'is_customer_notified': '0', - 'is_visible_on_front': '0', - 'parent_id': '691', - 'status': 'pending', - 'store_id': '1'}], - 'store_currency_code': 'EUR', - 'store_id': '1', - 'store_name': 'Main Website\nMain Store\nEnglish', - 'store_to_base_rate': '1.0000', - 'store_to_order_rate': '1.0000', - 'subtotal': '2449.9800', - 'subtotal_canceled': None, - 'subtotal_incl_tax': '2449.9800', - 'subtotal_invoiced': None, - 'subtotal_refunded': None, - 'tax_amount': '0.0000', - 'tax_canceled': None, - 'tax_invoiced': None, - 'tax_percent': None, - 'tax_refunded': None, - 'total_canceled': None, - 'total_due': None, - 'total_invoiced': None, - 'total_item_count': '2', - 'total_offline_refunded': None, - 'total_online_refunded': None, - 'total_paid': None, - 'total_qty_ordered': '2.0000', - 'total_refunded': None, - 'tracking_numbers': None, - 'updated_at': '2013-04-23 07:38:55', - 'weight': '2.0000', - 'x_forwarded_for': None}, - ('sales_order.info', (900000693, )): {'adjustment_negative': None, - 'adjustment_positive': None, - 'applied_rule_ids': None, - 'base_adjustment_negative': None, - 'base_adjustment_positive': None, - 'base_currency_code': 'EUR', - 'base_custbalance_amount': None, - 'base_discount_amount': '0.0000', - 'base_discount_canceled': None, - 'base_discount_invoiced': None, - 'base_discount_refunded': None, - 'base_grand_total': '2459.9800', - 'base_hidden_tax_amount': '0.0000', - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_shipping_amount': '10.0000', - 'base_shipping_canceled': None, - 'base_shipping_discount_amount': '0.0000', - 'base_shipping_hidden_tax_amnt': '0.0000', - 'base_shipping_hidden_tax_amount': '0.0000', - 'base_shipping_incl_tax': '10.0000', - 'base_shipping_invoiced': None, - 'base_shipping_refunded': None, - 'base_shipping_tax_amount': '0.0000', - 'base_shipping_tax_refunded': None, - 'base_subtotal': '2449.9800', - 'base_subtotal_canceled': None, - 'base_subtotal_incl_tax': '2449.9800', - 'base_subtotal_invoiced': None, - 'base_subtotal_refunded': None, - 'base_tax_amount': '0.0000', - 'base_tax_canceled': None, - 'base_tax_invoiced': None, - 'base_tax_refunded': None, - 'base_to_global_rate': '1.0000', - 'base_to_order_rate': '1.0000', - 'base_total_canceled': None, - 'base_total_due': None, - 'base_total_invoiced': None, - 'base_total_invoiced_cost': None, - 'base_total_offline_refunded': None, - 'base_total_online_refunded': None, - 'base_total_paid': None, - 'base_total_qty_ordered': None, - 'base_total_refunded': None, - 'billing_address': {'address_id': '1381', - 'address_type': 'billing', - 'city': 'Guillotnec', - 'company': 'Blondel Royer S.A.S.', - 'country_id': 'FR', - 'customer_address_id': '451', - 'customer_id': '1', - 'email': 'renard.aimee@example.net', - 'fax': None, - 'firstname': 'Couturier', - 'gift_message_id': None, - 'lastname': 'Manon', - 'middlename': None, - 'parent_id': '691', - 'postcode': '96513', - 'prefix': None, - 'quote_address_id': None, - 'region': u'Puy-de-D\xf4me', - 'region_id': '245', - 'street': u'rue \xc9lisabeth Faivre', - 'suffix': None, - 'tax_id': None, - 'telephone': '01 57 83 21 56', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'billing_address_id': '1381', - 'can_ship_partially': None, - 'can_ship_partially_item': None, - 'coupon_code': None, - 'coupon_rule_name': None, - 'created_at': time.strftime(FMT), - 'currency_base_id': None, - 'currency_code': None, - 'currency_rate': None, - 'custbalance_amount': None, - 'customer_dob': None, - 'customer_email': 'renard.aimee@example.net', - 'customer_firstname': 'Laurence', - 'customer_gender': None, - 'customer_group_id': '1', - 'customer_id': '1', - 'customer_is_guest': '0', - 'customer_lastname': 'Pages', - 'customer_middlename': None, - 'customer_note': None, - 'customer_note_notify': '0', - 'customer_prefix': None, - 'customer_suffix': None, - 'customer_taxvat': None, - 'discount_amount': '0.0000', - 'discount_canceled': None, - 'discount_description': None, - 'discount_invoiced': None, - 'discount_refunded': None, - 'edit_increment': None, - 'email_sent': None, - 'ext_customer_id': None, - 'ext_order_id': None, - 'forced_do_shipment_with_invoice': None, - 'forced_shipment_with_invoice': None, - 'gift_message_id': None, - 'global_currency_code': 'EUR', - 'grand_total': '2459.9800', - 'hidden_tax_amount': '0.0000', - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'hold_before_state': None, - 'hold_before_status': None, - 'imported': '0', - 'increment_id': '900000693', - 'is_hold': None, - 'is_multi_payment': None, - 'is_virtual': '0', - 'items': [{'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': None, - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_original_price': '2049.9900', - 'base_price': '2049.9900', - 'base_price_incl_tax': '2049.9900', - 'base_row_invoiced': '0.0000', - 'base_row_total': '2049.9900', - 'base_row_total_incl_tax': '2049.9900', - 'base_tax_amount': '0.0000', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '0.0000', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-04-23 07:38:55', - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '1718', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': 'Intel Core 2 Extreme QX9775 3.20GHz Retail', - 'no_discount': '0', - 'order_id': '691', - 'original_price': '2049.9900', - 'parent_item_id': None, - 'price': '2049.9900', - 'price_incl_tax': '2049.9900', - 'product_id': '153', - 'product_options': 'a:1:{s:15:"info_buyRequest";a:2:{s:3:"qty";s:6:"1.0000";s:7:"options";a:0:{}}}', - 'product_type': 'simple', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '0.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '1716', - 'row_invoiced': '0.0000', - 'row_total': '2049.9900', - 'row_total_incl_tax': '2049.9900', - 'row_weight': '1.0000', - 'sku': 'intelcore2extreme', - 'store_id': '1', - 'tax_amount': '0.0000', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '0.0000', - 'tax_percent': '0.0000', - 'tax_refunded': None, - 'updated_at': '2013-04-23 07:38:55', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': '1.0000'}, - {'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': None, - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_original_price': '399.9900', - 'base_price': '399.9900', - 'base_price_incl_tax': '399.9900', - 'base_row_invoiced': '0.0000', - 'base_row_total': '399.9900', - 'base_row_total_incl_tax': '399.9900', - 'base_tax_amount': '0.0000', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '0.0000', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-04-23 07:38:55', - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '1719', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': '19" Widescreen Flat-Panel LCD Monitor', - 'no_discount': '0', - 'order_id': '691', - 'original_price': '399.9900', - 'parent_item_id': None, - 'price': '399.9900', - 'price_incl_tax': '399.9900', - 'product_id': '156', - 'product_options': 'a:1:{s:15:"info_buyRequest";a:2:{s:3:"qty";s:6:"1.0000";s:7:"options";a:0:{}}}', - 'product_type': 'simple', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '0.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '1717', - 'row_invoiced': '0.0000', - 'row_total': '399.9900', - 'row_total_incl_tax': '399.9900', - 'row_weight': '1.0000', - 'sku': 'W1952TQ-TF', - 'store_id': '1', - 'tax_amount': '0.0000', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '0.0000', - 'tax_percent': '0.0000', - 'tax_refunded': None, - 'updated_at': '2013-04-23 07:38:55', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': '1.0000'}], - 'order_currency_code': 'EUR', - 'order_id': '691', - 'original_increment_id': None, - 'payment': {'account_status': None, - 'additional_data': None, - 'additional_information': {'instructions': ''}, - 'address_status': None, - 'amount': None, - 'amount_authorized': None, - 'amount_canceled': None, - 'amount_ordered': '2459.9800', - 'amount_paid': None, - 'amount_refunded': None, - 'anet_trans_method': None, - 'base_amount_authorized': None, - 'base_amount_canceled': None, - 'base_amount_ordered': '2459.9800', - 'base_amount_paid': None, - 'base_amount_paid_online': None, - 'base_amount_refunded': None, - 'base_amount_refunded_online': None, - 'base_shipping_amount': '10.0000', - 'base_shipping_captured': None, - 'base_shipping_refunded': None, - 'cc_approval': None, - 'cc_avs_status': None, - 'cc_cid_status': None, - 'cc_debug_request_body': None, - 'cc_debug_response_body': None, - 'cc_debug_response_serialized': None, - 'cc_exp_month': '0', - 'cc_exp_year': '0', - 'cc_last4': None, - 'cc_number_enc': None, - 'cc_owner': None, - 'cc_raw_request': None, - 'cc_raw_response': None, - 'cc_secure_verify': None, - 'cc_ss_issue': None, - 'cc_ss_start_month': '0', - 'cc_ss_start_year': '0', - 'cc_status': None, - 'cc_status_description': None, - 'cc_trans_id': None, - 'cc_type': None, - 'customer_payment_id': None, - 'cybersource_token': None, - 'echeck_account_name': None, - 'echeck_account_type': None, - 'echeck_bank_name': None, - 'echeck_routing_number': None, - 'echeck_type': None, - 'flo2cash_account_id': None, - 'ideal_issuer_id': None, - 'ideal_issuer_title': None, - 'ideal_transaction_checked': None, - 'last_trans_id': None, - 'method': 'checkmo', - 'parent_id': '691', - 'paybox_question_number': None, - 'paybox_request_number': None, - 'payment_id': '691', - 'po_number': None, - 'protection_eligibility': None, - 'quote_payment_id': None, - 'shipping_amount': '10.0000', - 'shipping_captured': None, - 'shipping_refunded': None}, - 'payment_auth_expiration': None, - 'payment_authorization_amount': None, - 'payment_authorization_expiration': None, - 'paypal_ipn_customer_notified': None, - 'protect_code': '5f579e', - 'quote_address_id': None, - 'quote_id': '697', - 'real_order_id': None, - 'relation_child_id': None, - 'relation_child_real_id': None, - 'relation_parent_id': None, - 'relation_parent_real_id': None, - 'remote_ip': None, - 'shipping_address': {'address_id': '1382', - 'address_type': 'shipping', - 'city': 'Guillotnec', - 'company': 'Blondel Royer S.A.S.', - 'country_id': 'FR', - 'customer_address_id': '451', - 'customer_id': '1', - 'email': 'renard.aimee@example.net', - 'fax': None, - 'firstname': 'Couturier', - 'gift_message_id': None, - 'lastname': 'Manon', - 'middlename': None, - 'parent_id': '691', - 'postcode': '96513', - 'prefix': None, - 'quote_address_id': None, - 'region': u'Puy-de-D\xf4me', - 'region_id': '245', - 'street': u'rue \xc9lisabeth Faivre', - 'suffix': None, - 'tax_id': None, - 'telephone': '01 57 83 21 56', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'shipping_address_id': '1382', - 'shipping_amount': '10.0000', - 'shipping_canceled': None, - 'shipping_description': 'Flat Rate - Fixed', - 'shipping_discount_amount': '0.0000', - 'shipping_hidden_tax_amount': '0.0000', - 'shipping_incl_tax': '10.0000', - 'shipping_invoiced': None, - 'shipping_method': 'flatrate_flatrate', - 'shipping_refunded': None, - 'shipping_tax_amount': '0.0000', - 'shipping_tax_refunded': None, - 'state': 'new', - 'status': 'pending', - 'status_history': [{'comment': None, - 'created_at': '2013-04-23 07:38:55', - 'entity_name': 'order', - 'is_customer_notified': '0', - 'is_visible_on_front': '0', - 'parent_id': '691', - 'status': 'pending', - 'store_id': '1'}], - 'store_currency_code': 'EUR', - 'store_id': '1', - 'store_name': 'Main Website\nMain Store\nEnglish', - 'store_to_base_rate': '1.0000', - 'store_to_order_rate': '1.0000', - 'subtotal': '2449.9800', - 'subtotal_canceled': None, - 'subtotal_incl_tax': '2449.9800', - 'subtotal_invoiced': None, - 'subtotal_refunded': None, - 'tax_amount': '0.0000', - 'tax_canceled': None, - 'tax_invoiced': None, - 'tax_percent': None, - 'tax_refunded': None, - 'total_canceled': None, - 'total_due': None, - 'total_invoiced': None, - 'total_item_count': '2', - 'total_offline_refunded': None, - 'total_online_refunded': None, - 'total_paid': None, - 'total_qty_ordered': '2.0000', - 'total_refunded': None, - 'tracking_numbers': None, - 'updated_at': '2013-04-23 07:38:55', - 'website_id': u'1', - 'weight': '2.0000', - 'x_forwarded_for': None}, - ('sales_order.info', (900000694, )): {'adjustment_negative': None, - 'adjustment_positive': None, - 'applied_rule_ids': None, - 'base_adjustment_negative': None, - 'base_adjustment_positive': None, - 'base_currency_code': 'EUR', - 'base_custbalance_amount': None, - 'base_discount_amount': '0.0000', - 'base_discount_canceled': None, - 'base_discount_invoiced': None, - 'base_discount_refunded': None, - 'base_grand_total': '46.0500', - 'base_hidden_tax_amount': '0.0000', - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_shipping_amount': '5.0000', - 'base_shipping_canceled': None, - 'base_shipping_discount_amount': '0.0000', - 'base_shipping_hidden_tax_amnt': '0.0000', - 'base_shipping_hidden_tax_amount': '0.0000', - 'base_shipping_incl_tax': '5.0000', - 'base_shipping_invoiced': None, - 'base_shipping_refunded': None, - 'base_shipping_tax_amount': '0.0000', - 'base_shipping_tax_refunded': None, - 'base_subtotal': '41.0500', - 'base_subtotal_canceled': None, - 'base_subtotal_incl_tax': '41.0500', - 'base_subtotal_invoiced': None, - 'base_subtotal_refunded': None, - 'base_tax_amount': '0.0000', - 'base_tax_canceled': None, - 'base_tax_invoiced': None, - 'base_tax_refunded': None, - 'base_to_global_rate': '1.0000', - 'base_to_order_rate': '1.0000', - 'base_total_canceled': None, - 'base_total_due': None, - 'base_total_invoiced': None, - 'base_total_invoiced_cost': None, - 'base_total_offline_refunded': None, - 'base_total_online_refunded': None, - 'base_total_paid': None, - 'base_total_qty_ordered': None, - 'base_total_refunded': None, - 'billing_address': {'address_id': '11', - 'address_type': 'billing', - 'city': 'Guillotnec', - 'company': None, - 'country_id': 'FR', - 'customer_address_id': '0', - 'customer_id': '2', - 'email': None, - 'fax': None, - 'firstname': 'Couturier', - 'gift_message_id': None, - 'lastname': 'Manon', - 'middlename': None, - 'parent_id': '6', - 'postcode': '32', - 'prefix': None, - 'quote_address_id': None, - 'region': 'Calvados', - 'region_id': '195', - 'street': 'rue Jean Jacques Rousseau', - 'suffix': None, - 'tax_id': None, - 'telephone': '2323232323', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'billing_address_id': '11', - 'can_ship_partially': None, - 'can_ship_partially_item': None, - 'coupon_code': None, - 'coupon_rule_name': None, - 'created_at': time.strftime(FMT), - 'currency_base_id': None, - 'currency_code': None, - 'currency_rate': None, - 'custbalance_amount': None, - 'customer_dob': None, - 'customer_email': '1380099237@example.com', - 'customer_firstname': 't', - 'customer_gender': None, - 'customer_group_id': '1', - 'customer_id': '1', - 'customer_is_guest': '0', - 'customer_lastname': 'ta', - 'customer_middlename': None, - 'customer_note': None, - 'customer_note_notify': '0', - 'customer_prefix': None, - 'customer_suffix': None, - 'customer_taxvat': None, - 'discount_amount': '0.0000', - 'discount_canceled': None, - 'discount_description': None, - 'discount_invoiced': None, - 'discount_refunded': None, - 'edit_increment': None, - 'email_sent': None, - 'ext_customer_id': None, - 'ext_order_id': None, - 'forced_do_shipment_with_invoice': None, - 'forced_shipment_with_invoice': None, - 'gift_message_id': None, - 'global_currency_code': 'EUR', - 'grand_total': '46.0500', - 'hidden_tax_amount': '0.0000', - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'hold_before_state': None, - 'hold_before_status': None, - 'imported': '0', - 'increment_id': '900000694', - 'is_hold': None, - 'is_multi_payment': None, - 'is_virtual': '0', - 'items': [{'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': '10.0000', - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_original_price': '41.0500', - 'base_price': '41.0500', - 'base_price_incl_tax': '41.0500', - 'base_row_invoiced': '0.0000', - 'base_row_total': '41.0500', - 'base_row_total_incl_tax': '41.0500', - 'base_tax_amount': '0.0000', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '0.0000', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-10-30 09:43:20', - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'has_children': True, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '9', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'no_discount': '0', - 'order_id': '6', - 'original_price': '41.0500', - 'parent_item_id': None, - 'price': '41.0500', - 'price_incl_tax': '41.0500', - 'product_id': '135', - 'product_options': 'a:6:{s:15:"info_buyRequest";a:3:{s:3:"qty";s:6:"1.0000";s:15:"super_attribute";a:1:{i:502;s:2:"44";}s:7:"options";a:0:{}}s:15:"attributes_info";a:1:{i:0;a:2:{s:5:"label";s:9:"Shoe Size";s:5:"value";s:1:"5";}}s:11:"simple_name";s:38:"Anashria Womens Premier Leather Sandal";s:10:"simple_sku";s:5:"ana_5";s:20:"product_calculations";i:1;s:13:"shipment_type";i:0;}', - 'product_type': 'configurable', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '0.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '10', - 'row_invoiced': '0.0000', - 'row_total': '41.0500', - 'row_total_incl_tax': '41.0500', - 'row_weight': '2.0000', - 'sku': 'ana_5', - 'store_id': '3', - 'tax_amount': '0.0000', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '0.0000', - 'tax_percent': '0.0000', - 'tax_refunded': None, - 'updated_at': '2013-10-30 09:43:20', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': '2.0000'}, - {'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': '10.0000', - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_original_price': None, - 'base_price': '0.0000', - 'base_price_incl_tax': None, - 'base_row_invoiced': '0.0000', - 'base_row_total': '0.0000', - 'base_row_total_incl_tax': None, - 'base_tax_amount': '0.0000', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '0.0000', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': None, - 'base_weee_tax_applied_row_amount': None, - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-10-30 09:43:20', - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '10', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': 'Anashria Womens Premier Leather Sandal', - 'no_discount': '0', - 'order_id': '6', - 'original_price': '0.0000', - 'parent_item_id': '9', - 'price': '0.0000', - 'price_incl_tax': None, - 'product_id': '79', - 'product_options': 'a:1:{s:15:"info_buyRequest";a:3:{s:3:"qty";s:6:"1.0000";s:15:"super_attribute";a:1:{i:502;s:2:"44";}s:7:"options";a:0:{}}}', - 'product_type': 'simple', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '0.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '11', - 'row_invoiced': '0.0000', - 'row_total': '0.0000', - 'row_total_incl_tax': None, - 'row_weight': '0.0000', - 'sku': 'ana_5', - 'store_id': '3', - 'tax_amount': '0.0000', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '0.0000', - 'tax_percent': '0.0000', - 'tax_refunded': None, - 'updated_at': '2013-10-30 09:43:20', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': '2.0000'}], - 'order_currency_code': 'EUR', - 'order_id': '6', - 'original_increment_id': None, - 'payment': {'account_status': None, - 'additional_data': None, - 'additional_information': [], - 'address_status': None, - 'amount': None, - 'amount_authorized': None, - 'amount_canceled': None, - 'amount_ordered': '46.0500', - 'amount_paid': None, - 'amount_refunded': None, - 'anet_trans_method': None, - 'base_amount_authorized': None, - 'base_amount_canceled': None, - 'base_amount_ordered': '46.0500', - 'base_amount_paid': None, - 'base_amount_paid_online': None, - 'base_amount_refunded': None, - 'base_amount_refunded_online': None, - 'base_shipping_amount': '5.0000', - 'base_shipping_captured': None, - 'base_shipping_refunded': None, - 'cc_approval': None, - 'cc_avs_status': None, - 'cc_cid_status': None, - 'cc_debug_request_body': None, - 'cc_debug_response_body': None, - 'cc_debug_response_serialized': None, - 'cc_exp_month': '0', - 'cc_exp_year': '0', - 'cc_last4': None, - 'cc_number_enc': None, - 'cc_owner': None, - 'cc_raw_request': None, - 'cc_raw_response': None, - 'cc_secure_verify': None, - 'cc_ss_issue': None, - 'cc_ss_start_month': '0', - 'cc_ss_start_year': '0', - 'cc_status': None, - 'cc_status_description': None, - 'cc_trans_id': None, - 'cc_type': None, - 'customer_payment_id': None, - 'cybersource_token': None, - 'echeck_account_name': None, - 'echeck_account_type': None, - 'echeck_bank_name': None, - 'echeck_routing_number': None, - 'echeck_type': None, - 'flo2cash_account_id': None, - 'ideal_issuer_id': None, - 'ideal_issuer_title': None, - 'ideal_transaction_checked': None, - 'last_trans_id': None, - 'method': 'checkmo', - 'parent_id': '6', - 'paybox_question_number': None, - 'paybox_request_number': None, - 'payment_id': '6', - 'po_number': None, - 'protection_eligibility': None, - 'quote_payment_id': None, - 'shipping_amount': '5.0000', - 'shipping_captured': None, - 'shipping_refunded': None}, - 'payment_auth_expiration': None, - 'payment_authorization_amount': None, - 'payment_authorization_expiration': None, - 'paypal_ipn_customer_notified': None, - 'protect_code': 'a38749', - 'quote_address_id': None, - 'quote_id': '7', - 'real_order_id': None, - 'relation_child_id': None, - 'relation_child_real_id': None, - 'relation_parent_id': None, - 'relation_parent_real_id': None, - 'remote_ip': None, - 'shipping_address': {'address_id': '12', - 'address_type': 'shipping', - 'city': 'Guillotnec', - 'company': None, - 'country_id': 'FR', - 'customer_address_id': '0', - 'customer_id': '1', - 'email': None, - 'fax': None, - 'firstname': 'Couturier', - 'gift_message_id': None, - 'lastname': 'Manon', - 'middlename': None, - 'parent_id': '6', - 'postcode': '32', - 'prefix': None, - 'quote_address_id': None, - 'region': 'Calvados', - 'region_id': '195', - 'street': 'rue Jean Jacques Rousseau', - 'suffix': None, - 'tax_id': None, - 'telephone': '03 22 32 32 23', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'shipping_address_id': '12', - 'shipping_amount': '5.0000', - 'shipping_canceled': None, - 'shipping_description': 'Flat Rate - Fixed', - 'shipping_discount_amount': '0.0000', - 'shipping_hidden_tax_amount': '0.0000', - 'shipping_incl_tax': '5.0000', - 'shipping_invoiced': None, - 'shipping_method': 'flatrate_flatrate', - 'shipping_refunded': None, - 'shipping_tax_amount': '0.0000', - 'shipping_tax_refunded': None, - 'state': 'new', - 'status': 'pending', - 'status_history': [{'comment': None, - 'created_at': '2013-10-30 09:43:20', - 'entity_name': 'order', - 'is_customer_notified': '0', - 'is_visible_on_front': '0', - 'parent_id': '6', - 'status': 'pending', - 'store_id': '3'}], - 'store_currency_code': 'EUR', - 'store_id': '3', - 'store_name': 'Main Website\nMain Store\nEnglish', - 'store_to_base_rate': '1.0000', - 'store_to_order_rate': '1.0000', - 'subtotal': '41.0500', - 'subtotal_canceled': None, - 'subtotal_incl_tax': '41.0500', - 'subtotal_invoiced': None, - 'subtotal_refunded': None, - 'tax_amount': '0.0000', - 'tax_canceled': None, - 'tax_invoiced': None, - 'tax_percent': None, - 'tax_refunded': None, - 'total_canceled': None, - 'total_due': None, - 'total_invoiced': None, - 'total_item_count': '1', - 'total_offline_refunded': None, - 'total_online_refunded': None, - 'total_paid': None, - 'total_qty_ordered': '1.0000', - 'total_refunded': None, - 'tracking_numbers': None, - 'updated_at': '2013-10-30 09:43:20', - 'weight': '2.0000', - 'x_forwarded_for': None}, - ('sales_order.info', (900000695, )): {'adjustment_negative': None, - 'adjustment_positive': None, - 'applied_rule_ids': None, - 'base_adjustment_negative': None, - 'base_adjustment_positive': None, - 'base_currency_code': 'EUR', - 'base_discount_amount': '0.0000', - 'base_discount_canceled': None, - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_grand_total': '97.5000', - 'base_hidden_tax_amount': '0.0000', - 'base_hidden_tax_invoiced': '0.0000', - 'base_hidden_tax_refunded': None, - 'base_shipping_amount': '7.8700', - 'base_shipping_canceled': None, - 'base_shipping_discount_amount': '0.0000', - 'base_shipping_hidden_tax_amnt': '0.0000', - 'base_shipping_hidden_tax_amount': '0.0000', - 'base_shipping_incl_tax': '8.5000', - 'base_shipping_invoiced': '7.8700', - 'base_shipping_refunded': None, - 'base_shipping_tax_amount': '0.6300', - 'base_shipping_tax_refunded': None, - 'base_subtotal': '82.4100', - 'base_subtotal_canceled': None, - 'base_subtotal_incl_tax': '89.0000', - 'base_subtotal_invoiced': '82.4100', - 'base_subtotal_refunded': None, - 'base_tax_amount': '7.2200', - 'base_tax_canceled': None, - 'base_tax_invoiced': '7.2200', - 'base_tax_refunded': None, - 'base_to_global_rate': '1.0000', - 'base_to_order_rate': '1.0000', - 'base_total_canceled': None, - 'base_total_due': '0.0000', - 'base_total_invoiced': '97.5000', - 'base_total_invoiced_cost': '0.0000', - 'base_total_offline_refunded': None, - 'base_total_online_refunded': None, - 'base_total_paid': '97.5000', - 'base_total_qty_ordered': None, - 'base_total_refunded': None, - 'billing_address': {'address_id': '38468', - 'address_type': 'billing', - 'city': 'Lyon', - 'company': None, - 'country_id': 'FR', - 'customer_address_id': '4999', - 'customer_id': None, - 'email': 'john@doe.fr', - 'fax': None, - 'firstname': 'John', - 'lastname': 'Doe', - 'middlename': None, - 'parent_id': '7360', - 'postcode': '1006', - 'prefix': None, - 'quote_address_id': None, - 'region': None, - 'region_id': None, - 'street': 'Victor Hugo', - 'suffix': None, - 'telephone': '31763163390', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'billing_address_id': '38468', - 'can_ship_partially': None, - 'can_ship_partially_item': None, - 'coupon_code': None, - 'coupon_rule_name': None, - 'created_at': time.strftime(FMT), - 'customer_dob': None, - 'customer_email': 'john@doe.fr', - 'customer_firstname': 'John', - 'customer_gender': None, - 'customer_group_id': '1', - 'customer_id': '1', - 'customer_is_guest': '0', - 'customer_lastname': 'Doe', - 'customer_middlename': None, - 'customer_note': None, - 'customer_note_notify': '1', - 'customer_prefix': None, - 'customer_suffix': None, - 'customer_taxvat': None, - 'discount_amount': '0.0000', - 'discount_canceled': None, - 'discount_description': None, - 'discount_invoiced': '0.0000', - 'discount_refunded': None, - 'edit_increment': None, - 'email_sent': '1', - 'employee_email': None, - 'employee_name': None, - 'employee_phone': None, - 'ext_customer_id': None, - 'ext_order_id': None, - 'forced_do_shipment_with_invoice': None, - 'forced_shipment_with_invoice': None, - 'gift_message_id': None, - 'global_currency_code': 'EUR', - 'grand_total': '97.5000', - 'hidden_tax_amount': '0.0000', - 'hidden_tax_invoiced': '0.0000', - 'hidden_tax_refunded': None, - 'hold_before_state': None, - 'hold_before_status': None, - 'imported': '0', - 'increment_id': '900000695', - 'is_virtual': '0', - 'items': [{'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': None, - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': '0.0000', - 'base_hidden_tax_refunded': None, - 'base_original_price': '89.0000', - 'base_price': '82.4100', - 'base_price_incl_tax': '89.0000', - 'base_row_invoiced': '82.4100', - 'base_row_total': '82.4100', - 'base_row_total_incl_tax': '89.0000', - 'base_tax_amount': '6.5900', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '6.5900', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': time.strftime(FMT), - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'earned_points_hash': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': '0.0000', - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '12751', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': 'Dior Homme', - 'no_discount': '0', - 'order_id': '7360', - 'original_price': '89.0000', - 'parent_item_id': None, - 'price': '82.4100', - 'price_incl_tax': '89.0000', - 'product_id': '157', - 'product_options': 'a:1:{s:15:"info_buyRequest";a:6:{s:4:"uenc";s:176:"aHR0cDovL3d3dy4xMDAwcGFyZnVtcy5jaC9ib3V0aXF1ZTEuNy4wLjIvZnIvcGFyZnVtLWhvbW1lcy1ldC1mZW1tZXMtcGFzLWNoZXIvcGFyZnVtLWRpb3ItcGFzLWNoZXIvcGFyZnVtLWRpb3ItaG9tbWUtcGFzLWNoZXIuaHRtbA,,";s:7:"product";s:4:"4773";s:15:"related_product";s:0:"";s:3:"qty";s:1:"1";s:1:"x";s:2:"70";s:1:"y";s:2:"23";}}', - 'product_type': 'simple', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '1.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '46485', - 'redeemed_points_hash': None, - 'row_invoiced': '82.4100', - 'row_total': '82.4100', - 'row_total_after_redemptions': None, - 'row_total_after_redemptions_incl_tax': None, - 'row_total_before_redemptions': None, - 'row_total_before_redemptions_incl_tax': None, - 'row_total_incl_tax': '89.0000', - 'row_weight': '0.0000', - 'sku': '1625', - 'store_id': '1', - 'tax_amount': '6.5900', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '6.5900', - 'tax_percent': '8.0000', - 'tax_refunded': None, - 'updated_at': time.strftime(FMT), - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': None}], - 'order_currency_code': 'EUR', - 'order_id': '7360', - 'original_increment_id': None, - 'payment': {'account_status': None, - 'additional_data': None, - 'address_status': None, - 'amount_authorized': None, - 'amount_canceled': None, - 'amount_ordered': '97.5000', - 'amount_paid': '97.5000', - 'amount_refunded': None, - 'anet_trans_method': None, - 'base_amount_authorized': None, - 'base_amount_canceled': None, - 'base_amount_ordered': '97.5000', - 'base_amount_paid': '97.5000', - 'base_amount_paid_online': None, - 'base_amount_refunded': None, - 'base_amount_refunded_online': None, - 'base_shipping_amount': '7.8700', - 'base_shipping_captured': '7.8700', - 'base_shipping_refunded': None, - 'cc_approval': None, - 'cc_avs_status': None, - 'cc_cid_status': None, - 'cc_debug_request_body': None, - 'cc_debug_response_body': None, - 'cc_debug_response_serialized': None, - 'cc_exp_month': '0', - 'cc_exp_year': '0', - 'cc_last4': None, - 'cc_number_enc': None, - 'cc_owner': None, - 'cc_secure_verify': None, - 'cc_ss_issue': None, - 'cc_ss_start_month': '0', - 'cc_ss_start_year': '0', - 'cc_status': None, - 'cc_status_description': None, - 'cc_trans_id': None, - 'cc_type': None, - 'cybersource_token': None, - 'echeck_account_name': None, - 'echeck_account_type': None, - 'echeck_bank_name': None, - 'echeck_routing_number': None, - 'echeck_type': None, - 'flo2cash_account_id': None, - 'ideal_issuer_id': None, - 'ideal_issuer_title': None, - 'ideal_transaction_checked': None, - 'last_trans_id': '1P06829259760661R', - 'method': 'checkmo', - 'parent_id': '7360', - 'paybox_question_number': None, - 'paybox_request_number': None, - 'payment_id': '32844', - 'po_number': None, - 'protection_eligibility': None, - 'quote_payment_id': None, - 'shipping_amount': '7.8700', - 'shipping_captured': '7.8700', - 'shipping_refunded': None}, - 'payment_auth_expiration': None, - 'payment_authorization_amount': None, - 'payment_authorization_expiration': None, - 'paypal_ipn_customer_notified': None, - 'protect_code': '49accf', - 'quote_address_id': None, - 'quote_id': '33794', - 'relation_child_id': None, - 'relation_child_real_id': None, - 'relation_parent_id': None, - 'relation_parent_real_id': None, - 'remote_ip': None, - 'rewards_base_discount_amount': None, - 'rewards_base_discount_tax_amount': None, - 'rewards_discount_amount': None, - 'rewards_discount_tax_amount': None, - 'shipping_address': {'address_id': '38469', - 'address_type': 'shipping', - 'city': 'Lyon', - 'company': None, - 'country_id': 'FR', - 'customer_address_id': None, - 'customer_id': None, - 'email': 'john@doe.fr', - 'fax': None, - 'firstname': 'John', - 'lastname': 'Doe', - 'middlename': None, - 'parent_id': '7360', - 'postcode': '1006', - 'prefix': None, - 'quote_address_id': None, - 'region': None, - 'region_id': None, - 'street': 'Victor Hugo', - 'suffix': None, - 'telephone': '31763163390', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'shipping_address_id': '38469', - 'shipping_amount': '7.8700', - 'shipping_canceled': None, - 'shipping_description': 'La Poste', - 'shipping_discount_amount': '0.0000', - 'shipping_hidden_tax_amount': '0.0000', - 'shipping_incl_tax': '8.5000', - 'shipping_invoiced': '7.8700', - 'shipping_method': 'flatrate_flatrate', - 'shipping_refunded': None, - 'shipping_tax_amount': '0.6300', - 'shipping_tax_refunded': None, - 'state': 'processing', - 'status': 'processing', - 'status_history': [{'comment': u'Notifier le client pour la facture n\xb0100003489.', - 'created_at': '2013-10-14 13:22:02', - 'entity_name': 'invoice', - 'is_customer_notified': '1', - 'is_visible_on_front': '0', - 'parent_id': '7360', - 'status': 'processing', - 'store_id': '1'}, - {'comment': u'IPN "Completed". Registered notification about captured amount of 97,50\xa0EUR. Transaction ID: "1P06829259760661R".', - 'created_at': '2013-10-14 13:22:00', - 'entity_name': 'invoice', - 'is_customer_notified': '2', - 'is_visible_on_front': '0', - 'parent_id': '7360', - 'status': 'processing', - 'store_id': '1'}, - {'comment': None, - 'created_at': '2013-10-14 13:20:58', - 'entity_name': 'order', - 'is_customer_notified': '0', - 'is_visible_on_front': '0', - 'parent_id': '7360', - 'status': 'pending_payment', - 'store_id': '1'}], - 'store_currency_code': 'EUR', - 'store_id': '1', - 'store_name': u'France', - 'store_to_base_rate': '1.0000', - 'store_to_order_rate': '1.0000', - 'subtotal': '82.4100', - 'subtotal_canceled': None, - 'subtotal_incl_tax': '89.0000', - 'subtotal_invoiced': '82.4100', - 'subtotal_refunded': None, - 'tax_amount': '7.2200', - 'tax_canceled': None, - 'tax_invoiced': '7.2200', - 'tax_refunded': None, - 'total_canceled': None, - 'total_due': '0.0000', - 'total_invoiced': '97.5000', - 'total_item_count': '1', - 'total_offline_refunded': None, - 'total_online_refunded': None, - 'total_paid': '97.5000', - 'total_qty_ordered': '1.0000', - 'total_refunded': None, - 'updated_at': time.strftime(FMT), - 'website_id': u'1', - 'weight': '0.0000', - 'x_forwarded_for': None}, - ('sales_order.info', (900000696, )): {'adjustment_negative': None, - 'adjustment_positive': None, - 'applied_rule_ids': '192', - 'base_adjustment_negative': None, - 'base_adjustment_positive': None, - 'base_currency_code': 'EUR', - 'base_custbalance_amount': None, - 'base_discount_amount': '-5.0000', - 'base_discount_canceled': None, - 'base_discount_invoiced': '5.0000', - 'base_discount_refunded': None, - 'base_grand_total': '36.9500', - 'base_hidden_tax_amount': '0.0000', - 'base_hidden_tax_invoiced': '0.0000', - 'base_hidden_tax_refunded': None, - 'base_shipping_amount': '0.0000', - 'base_shipping_canceled': None, - 'base_shipping_discount_amount': '0.0000', - 'base_shipping_hidden_tax_amount': '0.0000', - 'base_shipping_incl_tax': '0.0000', - 'base_shipping_invoiced': '0.0000', - 'base_shipping_refunded': None, - 'base_shipping_tax_amount': '0.0000', - 'base_shipping_tax_refunded': None, - 'base_subtotal': '39.2100', - 'base_subtotal_canceled': None, - 'base_subtotal_incl_tax': '41.9500', - 'base_subtotal_invoiced': '39.2100', - 'base_subtotal_refunded': None, - 'base_tax_amount': '2.7400', - 'base_tax_canceled': None, - 'base_tax_invoiced': '2.7400', - 'base_tax_refunded': None, - 'base_to_global_rate': '1.0000', - 'base_to_order_rate': '1.0000', - 'base_total_canceled': None, - 'base_total_due': '0.0000', - 'base_total_invoiced': '36.9500', - 'base_total_invoiced_cost': '0.0000', - 'base_total_offline_refunded': None, - 'base_total_online_refunded': None, - 'base_total_paid': '36.9500', - 'base_total_qty_ordered': None, - 'base_total_refunded': None, - 'billing_address': {'address_id': '38468', - 'address_type': 'billing', - 'city': 'Lyon', - 'company': None, - 'country_id': 'FR', - 'customer_address_id': '4999', - 'customer_id': None, - 'email': 'john@doe.fr', - 'fax': None, - 'firstname': 'John', - 'lastname': 'Doe', - 'middlename': None, - 'parent_id': '7360', - 'postcode': '1006', - 'prefix': None, - 'quote_address_id': None, - 'region': None, - 'region_id': None, - 'street': 'Victor Hugo', - 'suffix': None, - 'telephone': '31763163390', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'can_ship_partially': None, - 'can_ship_partially_item': None, - 'coupon_code': 'COUPON', - 'created_at': time.strftime(FMT), - 'currency_base_id': None, - 'currency_code': None, - 'currency_rate': None, - 'custbalance_amount': None, - 'customer_dob': None, - 'customer_email': 'john@doe.fr', - 'customer_firstname': 'John', - 'customer_gender': None, - 'customer_group_id': '1', - 'customer_id': '1', - 'customer_is_guest': '0', - 'customer_lastname': 'Doe', - 'customer_middlename': None, - 'customer_note': None, - 'customer_note_notify': '1', - 'customer_prefix': None, - 'customer_suffix': None, - 'customer_taxvat': None, - 'discount_amount': '-5.0000', - 'discount_canceled': None, - 'discount_description': '5 EURO Coupon', - 'discount_invoiced': '5.0000', - 'discount_refunded': None, - 'edit_increment': None, - 'email_sent': 1, - 'entity_id': '4242', - 'ext_customer_id': None, - 'ext_order_id': None, - 'forced_do_shipment_with_invoice': None, - 'gift_message_id': None, - 'global_currency_code': 'EUR', - 'grand_total': '36.9500', - 'hidden_tax_amount': '0.0000', - 'hidden_tax_invoiced': '0.0000', - 'hidden_tax_refunded': None, - 'hold_before_state': None, - 'hold_before_status': None, - 'increment_id': '900000696', - 'is_hold': None, - 'is_multi_payment': None, - 'is_virtual': 0, - 'items': [{'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': '192', - 'base_amount_refunded': '0.0000', - 'base_cost': '0.0000', - 'base_discount_amount': '3.5700', - 'base_discount_invoiced': '3.5700', - 'base_hidden_tax_amount': '0.0000', - 'base_hidden_tax_invoiced': '0.0000', - 'base_hidden_tax_refunded': None, - 'base_original_price': '29.9900', - 'base_price': '28.0300', - 'base_price_incl_tax': '29.9900', - 'base_row_invoiced': '28.0300', - 'base_row_total': '28.0300', - 'base_row_total_incl_tax': '29.9900', - 'base_tax_amount': '1.9600', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '1.9600', - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-10-14 13:20:56', - 'description': None, - 'discount_amount': '3.5700', - 'discount_invoiced': '3.5700', - 'discount_percent': '0.0000', - 'ext_order_item_id': None, - 'free_shipping': 0, - 'gift_message_available': 2, - 'gift_message_id': None, - 'hidden_tax_amount': '0.0000', - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': '0.0000', - 'hidden_tax_refunded': None, - 'is_nominal': 0, - 'is_qty_decimal': 0, - 'is_virtual': 0, - 'item_id': 354520, - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': 'Item 1', - 'no_discount': 0, - 'order_id': '4242', - 'original_price': '29.9900', - 'parent_item_id': None, - 'price': '28.0300', - 'price_incl_tax': '29.9900', - 'product_id': '153', - 'product_options': None, - 'product_type': 'grouped', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '1.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': 579492, - 'row_invoiced': '28.0300', - 'row_total': '28.0300', - 'row_total_incl_tax': '29.9900', - 'row_weight': '0.0000', - 'sku': 'skui1', - 'store_id': 2, - 'tax_amount': '1.9600', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '1.9600', - 'tax_percent': '7.0000', - 'tax_refunded': None, - 'updated_at': '2013-10-14 13:20:56', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': None}, - {'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': '192', - 'base_amount_refunded': '0.0000', - 'base_cost': '0.0000', - 'base_discount_amount': '1.4300', - 'base_discount_invoiced': '1.4300', - 'base_hidden_tax_amount': '0.0000', - 'base_hidden_tax_invoiced': '0.0000', - 'base_hidden_tax_refunded': None, - 'base_original_price': '11.9600', - 'base_price': '11.1800', - 'base_price_incl_tax': '11.9600', - 'base_row_invoiced': '11.1800', - 'base_row_total': '11.1800', - 'base_row_total_incl_tax': '11.9600', - 'base_tax_amount': '0.7800', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '0.7800', - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-10-14 13:20:56', - 'description': None, - 'discount_amount': '1.4300', - 'discount_invoiced': '1.4300', - 'discount_percent': '0.0000', - 'ext_order_item_id': None, - 'free_shipping': 0, - 'gift_message_available': 2, - 'gift_message_id': None, - 'hidden_tax_amount': '0.0000', - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': '0.0000', - 'hidden_tax_refunded': None, - 'is_nominal': 0, - 'is_qty_decimal': 0, - 'is_virtual': 0, - 'item_id': 354521, - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': 'Item 2', - 'no_discount': 0, - 'order_id': '4242', - 'original_price': '11.9600', - 'parent_item_id': None, - 'price': '11.1800', - 'price_incl_tax': '11.9600', - 'product_id': '156', - 'product_options': None, - 'product_type': 'grouped', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '1.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': 579493, - 'row_invoiced': '11.1800', - 'row_total': '11.1800', - 'row_total_incl_tax': '11.9600', - 'row_weight': '0.0000', - 'sku': 'skui2', - 'store_id': 2, - 'tax_amount': '0.7800', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '0.7800', - 'tax_percent': '7.0000', - 'tax_refunded': None, - 'updated_at': '2013-10-14 13:20:56', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': None}], - 'order_currency_code': 'EUR', - 'original_increment_id': None, - 'payment': {'account_status': None, - 'additional_data': None, - 'additional_information': None, - 'address_status': None, - 'amount': None, - 'amount_authorized': None, - 'amount_canceled': None, - 'amount_ordered': '36.9500', - 'amount_paid': '36.9500', - 'amount_refunded': None, - 'anet_trans_method': None, - 'base_amount_authorized': None, - 'base_amount_canceled': None, - 'base_amount_ordered': '36.9500', - 'base_amount_paid': '36.9500', - 'base_amount_paid_online': None, - 'base_amount_refunded': None, - 'base_amount_refunded_online': None, - 'base_shipping_amount': '0.0000', - 'base_shipping_captured': '0.0000', - 'base_shipping_refunded': None, - 'cc_approval': None, - 'cc_avs_status': None, - 'cc_cid_status': None, - 'cc_debug_request_body': None, - 'cc_debug_response_body': None, - 'cc_debug_response_serialized': None, - 'cc_exp_month': '0', - 'cc_exp_year': '0', - 'cc_last4': '', - 'cc_number_enc': '', - 'cc_owner': 'John Doe', - 'cc_raw_request': None, - 'cc_raw_response': None, - 'cc_secure_verify': None, - 'cc_ss_issue': None, - 'cc_ss_start_month': '0', - 'cc_ss_start_year': '0', - 'cc_status': None, - 'cc_status_description': None, - 'cc_trans_id': None, - 'cc_type': '', - 'customer_payment_id': None, - 'cybersource_token': None, - 'echeck_account_name': None, - 'echeck_account_type': None, - 'echeck_bank_name': None, - 'echeck_routing_number': None, - 'echeck_type': None, - 'entity_id': '4242', - 'flo2cash_account_id': None, - 'ideal_issuer_id': None, - 'ideal_issuer_title': None, - 'ideal_transaction_checked': None, - 'last_trans_id': None, - 'method': 'checkmo', - 'parent_id': '4242', - 'paybox_question_number': None, - 'paybox_request_number': None, - 'pn_su_transaction_id': None, - 'po_number': '', - 'protection_eligibility': None, - 'quote_payment_id': None, - 'sequence_number': None, - 'shipping_amount': '0.0000', - 'shipping_captured': '0.0000', - 'shipping_refunded': None}, - 'payment_authorization_amount': None, - 'payment_authorization_expiration': None, - 'paypal_ipn_customer_notified': None, - 'protect_code': '3fde3f', - 'quote_address_id': None, - 'quote_id': 460362, - 'real_order_id': None, - 'relation_child_id': None, - 'relation_child_real_id': None, - 'relation_parent_id': None, - 'relation_parent_real_id': None, - 'remote_ip': '127.0.0.1', - 'shipping_address': {'address_id': '38469', - 'address_type': 'shipping', - 'city': 'Lyon', - 'company': None, - 'country_id': 'FR', - 'customer_address_id': None, - 'customer_id': None, - 'email': 'john@doe.fr', - 'fax': None, - 'firstname': 'John', - 'lastname': 'Doe', - 'middlename': None, - 'parent_id': '7360', - 'postcode': '1006', - 'prefix': None, - 'quote_address_id': None, - 'region': None, - 'region_id': None, - 'street': 'Victor Hugo', - 'suffix': None, - 'telephone': '31763163390', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'shipping_amount': '0.0000', - 'shipping_canceled': None, - 'shipping_description': 'free', - 'shipping_discount_amount': '0.0000', - 'shipping_hidden_tax_amount': '0.0000', - 'shipping_incl_tax': '0.0000', - 'shipping_invoiced': '0.0000', - 'shipping_method': 'freeshipping', - 'shipping_refunded': None, - 'shipping_tax_amount': '0.0000', - 'shipping_tax_refunded': None, - 'state': 'new', - 'status': 'complete', - 'status_history': [{'comment': u'Notifier le client pour la facture n\xb0100003489.', - 'created_at': '2013-10-14 13:22:02', - 'entity_name': 'invoice', - 'is_customer_notified': '1', - 'is_visible_on_front': '0', - 'parent_id': '7360', - 'status': 'processing', - 'store_id': '1'}, - {'comment': u'IPN "Completed". Registered notification about captured amount of 97,50\xa0EUR. Transaction ID: "1P06829259760661R".', - 'created_at': '2013-10-14 13:22:00', - 'entity_name': 'invoice', - 'is_customer_notified': '2', - 'is_visible_on_front': '0', - 'parent_id': '7360', - 'status': 'processing', - 'store_id': '1'}, - {'comment': None, - 'created_at': '2013-10-14 13:20:58', - 'entity_name': 'order', - 'is_customer_notified': '0', - 'is_visible_on_front': '0', - 'parent_id': '7360', - 'status': 'pending_payment', - 'store_id': '1'}], - 'store_currency_code': 'EUR', - 'store_id': 2, - 'store_name': 'Main', - 'store_to_base_rate': '1.0000', - 'store_to_order_rate': '1.0000', - 'subtotal': '39.2100', - 'subtotal_canceled': None, - 'subtotal_incl_tax': '41.9500', - 'subtotal_invoiced': '39.2100', - 'subtotal_refunded': None, - 'tax_amount': '2.7400', - 'tax_canceled': None, - 'tax_invoiced': '2.7400', - 'tax_percent': None, - 'tax_refunded': None, - 'total_canceled': None, - 'total_due': '0.0000', - 'total_invoiced': '36.9500', - 'total_item_count': 2, - 'total_offline_refunded': None, - 'total_online_refunded': None, - 'total_paid': '36.9500', - 'total_qty_ordered': '2.0000', - 'total_refunded': None, - 'tracking_numbers': None, - 'updated_at': '2013-10-14 13:20:56', - 'weight': '0.0000', - 'x_forwarded_for': None}, - ('sales_order.info', ('900000691-1', )): {'adjustment_negative': None, - 'adjustment_positive': None, - 'applied_rule_ids': None, - 'base_adjustment_negative': None, - 'base_adjustment_positive': None, - 'base_currency_code': 'EUR', - 'base_discount_amount': '0.0000', - 'base_discount_canceled': None, - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_grand_total': '97.5000', - 'base_hidden_tax_amount': '0.0000', - 'base_hidden_tax_invoiced': '0.0000', - 'base_hidden_tax_refunded': None, - 'base_shipping_amount': '7.8700', - 'base_shipping_canceled': None, - 'base_shipping_discount_amount': '0.0000', - 'base_shipping_hidden_tax_amnt': '0.0000', - 'base_shipping_hidden_tax_amount': '0.0000', - 'base_shipping_incl_tax': '8.5000', - 'base_shipping_invoiced': '7.8700', - 'base_shipping_refunded': None, - 'base_shipping_tax_amount': '0.6300', - 'base_shipping_tax_refunded': None, - 'base_subtotal': '82.4100', - 'base_subtotal_canceled': None, - 'base_subtotal_incl_tax': '89.0000', - 'base_subtotal_invoiced': '82.4100', - 'base_subtotal_refunded': None, - 'base_tax_amount': '7.2200', - 'base_tax_canceled': None, - 'base_tax_invoiced': '7.2200', - 'base_tax_refunded': None, - 'base_to_global_rate': '1.0000', - 'base_to_order_rate': '1.0000', - 'base_total_canceled': None, - 'base_total_due': '0.0000', - 'base_total_invoiced': '97.5000', - 'base_total_invoiced_cost': '0.0000', - 'base_total_offline_refunded': None, - 'base_total_online_refunded': None, - 'base_total_paid': '97.5000', - 'base_total_qty_ordered': None, - 'base_total_refunded': None, - 'billing_address': {'address_id': '38468', - 'address_type': 'billing', - 'city': 'Lyon', - 'company': None, - 'country_id': 'FR', - 'customer_address_id': '4999', - 'customer_id': None, - 'email': 'john@doe.fr', - 'fax': None, - 'firstname': 'John', - 'lastname': 'Doe', - 'middlename': None, - 'parent_id': '7360', - 'postcode': '1006', - 'prefix': None, - 'quote_address_id': None, - 'region': None, - 'region_id': None, - 'street': 'Victor Hugo', - 'suffix': None, - 'telephone': '31763163390', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'billing_address_id': '38468', - 'can_ship_partially': None, - 'can_ship_partially_item': None, - 'coupon_code': None, - 'coupon_rule_name': None, - 'created_at': time.strftime(FMT), - 'customer_dob': None, - 'customer_email': 'john@doe.fr', - 'customer_firstname': 'John', - 'customer_gender': None, - 'customer_group_id': '1', - 'customer_id': '1', - 'customer_is_guest': '0', - 'customer_lastname': 'Doe', - 'customer_middlename': None, - 'customer_note': None, - 'customer_note_notify': '1', - 'customer_prefix': None, - 'customer_suffix': None, - 'customer_taxvat': None, - 'discount_amount': '0.0000', - 'discount_canceled': None, - 'discount_description': None, - 'discount_invoiced': '0.0000', - 'discount_refunded': None, - 'edit_increment': None, - 'email_sent': '1', - 'employee_email': None, - 'employee_name': None, - 'employee_phone': None, - 'ext_customer_id': None, - 'ext_order_id': None, - 'forced_do_shipment_with_invoice': None, - 'forced_shipment_with_invoice': None, - 'gift_message_id': None, - 'global_currency_code': 'EUR', - 'grand_total': '97.5000', - 'hidden_tax_amount': '0.0000', - 'hidden_tax_invoiced': '0.0000', - 'hidden_tax_refunded': None, - 'hold_before_state': None, - 'hold_before_status': None, - 'imported': '0', - 'increment_id': '900000691-1', - 'is_virtual': '0', - 'items': [{'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': None, - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': '0.0000', - 'base_hidden_tax_refunded': None, - 'base_original_price': '89.0000', - 'base_price': '82.4100', - 'base_price_incl_tax': '89.0000', - 'base_row_invoiced': '82.4100', - 'base_row_total': '82.4100', - 'base_row_total_incl_tax': '89.0000', - 'base_tax_amount': '6.5900', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '6.5900', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': '2013-10-14 13:20:56', - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'earned_points_hash': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': '0.0000', - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '12751', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': 'Dior Homme', - 'no_discount': '0', - 'order_id': '7360', - 'original_price': '89.0000', - 'parent_item_id': None, - 'price': '82.4100', - 'price_incl_tax': '89.0000', - 'product_id': '157', - 'product_options': 'a:1:{s:15:"info_buyRequest";a:6:{s:4:"uenc";s:176:"aHR0cDovL3d3dy4xMDAwcGFyZnVtcy5jaC9ib3V0aXF1ZTEuNy4wLjIvZnIvcGFyZnVtLWhvbW1lcy1ldC1mZW1tZXMtcGFzLWNoZXIvcGFyZnVtLWRpb3ItcGFzLWNoZXIvcGFyZnVtLWRpb3ItaG9tbWUtcGFzLWNoZXIuaHRtbA,,";s:7:"product";s:4:"4773";s:15:"related_product";s:0:"";s:3:"qty";s:1:"1";s:1:"x";s:2:"70";s:1:"y";s:2:"23";}}', - 'product_type': 'simple', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '1.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '46485', - 'redeemed_points_hash': None, - 'row_invoiced': '82.4100', - 'row_total': '82.4100', - 'row_total_after_redemptions': None, - 'row_total_after_redemptions_incl_tax': None, - 'row_total_before_redemptions': None, - 'row_total_before_redemptions_incl_tax': None, - 'row_total_incl_tax': '89.0000', - 'row_weight': '0.0000', - 'sku': '1625', - 'store_id': '1', - 'tax_amount': '6.5900', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '6.5900', - 'tax_percent': '8.0000', - 'tax_refunded': None, - 'updated_at': '2013-10-14 13:22:00', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': None}], - 'order_currency_code': 'EUR', - 'order_id': '7360', - 'original_increment_id': '900000691', - 'payment': {'account_status': None, - 'additional_data': None, - 'address_status': None, - 'amount_authorized': None, - 'amount_canceled': None, - 'amount_ordered': '97.5000', - 'amount_paid': '97.5000', - 'amount_refunded': None, - 'anet_trans_method': None, - 'base_amount_authorized': None, - 'base_amount_canceled': None, - 'base_amount_ordered': '97.5000', - 'base_amount_paid': '97.5000', - 'base_amount_paid_online': None, - 'base_amount_refunded': None, - 'base_amount_refunded_online': None, - 'base_shipping_amount': '7.8700', - 'base_shipping_captured': '7.8700', - 'base_shipping_refunded': None, - 'cc_approval': None, - 'cc_avs_status': None, - 'cc_cid_status': None, - 'cc_debug_request_body': None, - 'cc_debug_response_body': None, - 'cc_debug_response_serialized': None, - 'cc_exp_month': '0', - 'cc_exp_year': '0', - 'cc_last4': None, - 'cc_number_enc': None, - 'cc_owner': None, - 'cc_secure_verify': None, - 'cc_ss_issue': None, - 'cc_ss_start_month': '0', - 'cc_ss_start_year': '0', - 'cc_status': None, - 'cc_status_description': None, - 'cc_trans_id': None, - 'cc_type': None, - 'cybersource_token': None, - 'echeck_account_name': None, - 'echeck_account_type': None, - 'echeck_bank_name': None, - 'echeck_routing_number': None, - 'echeck_type': None, - 'flo2cash_account_id': None, - 'ideal_issuer_id': None, - 'ideal_issuer_title': None, - 'ideal_transaction_checked': None, - 'last_trans_id': '1P06829259760661R', - 'method': 'checkmo', - 'parent_id': '7360', - 'paybox_question_number': None, - 'paybox_request_number': None, - 'payment_id': '32844', - 'po_number': None, - 'protection_eligibility': None, - 'quote_payment_id': None, - 'shipping_amount': '7.8700', - 'shipping_captured': '7.8700', - 'shipping_refunded': None}, - 'payment_auth_expiration': None, - 'payment_authorization_amount': None, - 'payment_authorization_expiration': None, - 'paypal_ipn_customer_notified': None, - 'protect_code': '49accf', - 'quote_address_id': None, - 'quote_id': '33794', - 'relation_child_id': None, - 'relation_child_real_id': None, - 'relation_parent_id': None, - 'relation_parent_real_id': 900000691, - 'remote_ip': None, - 'rewards_base_discount_amount': None, - 'rewards_base_discount_tax_amount': None, - 'rewards_discount_amount': None, - 'rewards_discount_tax_amount': None, - 'shipping_address': {'address_id': '38469', - 'address_type': 'shipping', - 'city': 'Lyon', - 'company': None, - 'country_id': 'FR', - 'customer_address_id': None, - 'customer_id': None, - 'email': 'john@doe.fr', - 'fax': None, - 'firstname': 'John', - 'lastname': 'Doe', - 'middlename': None, - 'parent_id': '7360', - 'postcode': '1006', - 'prefix': None, - 'quote_address_id': None, - 'region': None, - 'region_id': None, - 'street': 'Victor Hugo', - 'suffix': None, - 'telephone': '31763163390', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'shipping_address_id': '38469', - 'shipping_amount': '7.8700', - 'shipping_canceled': None, - 'shipping_description': 'La Poste', - 'shipping_discount_amount': '0.0000', - 'shipping_hidden_tax_amount': '0.0000', - 'shipping_incl_tax': '8.5000', - 'shipping_invoiced': '7.8700', - 'shipping_method': 'flatrate_flatrate', - 'shipping_refunded': None, - 'shipping_tax_amount': '0.6300', - 'shipping_tax_refunded': None, - 'state': 'processing', - 'status': 'processing', - 'status_history': [{'comment': u'Notifier le client pour la facture n\xb0100003489.', - 'created_at': '2013-10-14 13:22:02', - 'entity_name': 'invoice', - 'is_customer_notified': '1', - 'is_visible_on_front': '0', - 'parent_id': '7360', - 'status': 'processing', - 'store_id': '1'}, - {'comment': u'IPN "Completed". Registered notification about captured amount of 97,50\xa0EUR. Transaction ID: "1P06829259760661R".', - 'created_at': '2013-10-14 13:22:00', - 'entity_name': 'invoice', - 'is_customer_notified': '2', - 'is_visible_on_front': '0', - 'parent_id': '7360', - 'status': 'processing', - 'store_id': '1'}, - {'comment': None, - 'created_at': '2013-10-14 13:20:58', - 'entity_name': 'order', - 'is_customer_notified': '0', - 'is_visible_on_front': '0', - 'parent_id': '7360', - 'status': 'pending_payment', - 'store_id': '1'}], - 'store_currency_code': 'EUR', - 'store_id': '1', - 'store_name': u'France', - 'store_to_base_rate': '1.0000', - 'store_to_order_rate': '1.0000', - 'subtotal': '82.4100', - 'subtotal_canceled': None, - 'subtotal_incl_tax': '89.0000', - 'subtotal_invoiced': '82.4100', - 'subtotal_refunded': None, - 'tax_amount': '7.2200', - 'tax_canceled': None, - 'tax_invoiced': '7.2200', - 'tax_refunded': None, - 'total_canceled': None, - 'total_due': '0.0000', - 'total_invoiced': '97.5000', - 'total_item_count': '1', - 'total_offline_refunded': None, - 'total_online_refunded': None, - 'total_paid': '97.5000', - 'total_qty_ordered': '1.0000', - 'total_refunded': None, - 'updated_at': '2013-10-14 13:22:00', - 'website_id': u'1', - 'weight': '0.0000', - 'x_forwarded_for': None}, - ('sales_order.get_parent', (900000691,)): False, - } diff --git a/connector_magento/tests/data_guest_order.py b/connector_magento/tests/data_guest_order.py deleted file mode 100644 index 45ed8e5be..000000000 --- a/connector_magento/tests/data_guest_order.py +++ /dev/null @@ -1,402 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2015 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -# flake8: noqa : ignore style in this file because it is a data file -# only - -""" -Magento responses for calls done by the connector. - -This set of responses has been recorded for the synchronizations -with a Magento 1.7 version with demo data. - -It has been recorded using ``connector_magento.unit.backend_adapter.record`` -and ``connector_magento.unit.backend_adapter.output_recorder`` -""" -import time - -FMT = "%Y-%m-%d %H:%M:%S" - -guest_order_responses = \ - {('sales_order.info', (900000700,)): {'adjustment_negative': None, - 'adjustment_positive': None, - 'applied_rule_ids': None, - 'base_adjustment_negative': None, - 'base_adjustment_positive': None, - 'base_currency_code': 'EUR', - 'base_custbalance_amount': None, - 'base_discount_amount': '0.0000', - 'base_discount_canceled': None, - 'base_discount_invoiced': None, - 'base_discount_refunded': None, - 'base_grand_total': '166.9400', - 'base_hidden_tax_amount': '0.0000', - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_shipping_amount': '5.0000', - 'base_shipping_canceled': None, - 'base_shipping_discount_amount': '0.0000', - 'base_shipping_hidden_tax_amnt': '0.0000', - 'base_shipping_hidden_tax_amount': '0.0000', - 'base_shipping_incl_tax': '5.0000', - 'base_shipping_invoiced': None, - 'base_shipping_refunded': None, - 'base_shipping_tax_amount': '0.0000', - 'base_shipping_tax_refunded': None, - 'base_subtotal': '161.9400', - 'base_subtotal_canceled': None, - 'base_subtotal_incl_tax': '161.9400', - 'base_subtotal_invoiced': None, - 'base_subtotal_refunded': None, - 'base_tax_amount': '0.0000', - 'base_tax_canceled': None, - 'base_tax_invoiced': None, - 'base_tax_refunded': None, - 'base_to_global_rate': '1.0000', - 'base_to_order_rate': '1.0000', - 'base_total_canceled': None, - 'base_total_due': None, - 'base_total_invoiced': None, - 'base_total_invoiced_cost': None, - 'base_total_offline_refunded': None, - 'base_total_online_refunded': None, - 'base_total_paid': None, - 'base_total_qty_ordered': None, - 'base_total_refunded': None, - 'billing_address': {'address_id': '15', - 'address_type': 'billing', - 'city': 'Oberehrendingen', - 'company': None, - 'country_id': 'CH', - 'customer_address_id': None, - 'customer_id': None, - 'email': 'chtrokatoral@example.com', - 'fax': None, - 'firstname': "Ch'Troka", - 'gift_message_id': None, - 'lastname': 'Toral', - 'middlename': None, - 'parent_id': '8', - 'postcode': '5420', - 'prefix': None, - 'quote_address_id': None, - 'region': 'Aargau', - 'region_id': '104', - 'street': 'Clius 25', - 'suffix': None, - 'tax_id': None, - 'telephone': '056 524 10 76', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'billing_address_id': '15', - 'can_ship_partially': None, - 'can_ship_partially_item': None, - 'coupon_code': None, - 'coupon_rule_name': None, - 'created_at': time.strftime(FMT), - 'currency_base_id': None, - 'currency_code': None, - 'currency_rate': None, - 'custbalance_amount': None, - 'customer_dob': None, - 'customer_email': 'ChTrokaToral@rhyta.com', - 'customer_firstname': "Ch'Troka", - 'customer_gender': None, - 'customer_group_id': '0', - 'customer_id': 'guestorder:900000700', - 'customer_is_guest': True, - 'customer_lastname': 'Toral', - 'customer_middlename': None, - 'customer_note': None, - 'customer_note_notify': '1', - 'customer_prefix': None, - 'customer_suffix': None, - 'customer_taxvat': None, - 'discount_amount': '0.0000', - 'discount_canceled': None, - 'discount_description': None, - 'discount_invoiced': None, - 'discount_refunded': None, - 'edit_increment': None, - 'email_sent': '1', - 'ext_customer_id': None, - 'ext_order_id': None, - 'forced_do_shipment_with_invoice': None, - 'forced_shipment_with_invoice': None, - 'gift_message_id': None, - 'global_currency_code': 'EUR', - 'grand_total': '166.9400', - 'hidden_tax_amount': '0.0000', - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'hold_before_state': None, - 'hold_before_status': None, - 'imported': '0', - 'increment_id': '900000700', - 'is_hold': None, - 'is_multi_payment': None, - 'is_virtual': '0', - 'items': [{'additional_data': None, - 'amount_refunded': '0.0000', - 'applied_rule_ids': None, - 'base_amount_refunded': '0.0000', - 'base_cost': '29.9900', - 'base_discount_amount': '0.0000', - 'base_discount_invoiced': '0.0000', - 'base_discount_refunded': None, - 'base_hidden_tax_amount': None, - 'base_hidden_tax_invoiced': None, - 'base_hidden_tax_refunded': None, - 'base_original_price': '161.9400', - 'base_price': '161.9400', - 'base_price_incl_tax': '161.9400', - 'base_row_invoiced': '0.0000', - 'base_row_total': '161.9400', - 'base_row_total_incl_tax': '161.9400', - 'base_tax_amount': '0.0000', - 'base_tax_before_discount': None, - 'base_tax_invoiced': '0.0000', - 'base_tax_refunded': None, - 'base_weee_tax_applied_amount': '0.0000', - 'base_weee_tax_applied_row_amnt': '0.0000', - 'base_weee_tax_applied_row_amount': '0.0000', - 'base_weee_tax_disposition': '0.0000', - 'base_weee_tax_row_disposition': '0.0000', - 'created_at': time.strftime(FMT), - 'description': None, - 'discount_amount': '0.0000', - 'discount_invoiced': '0.0000', - 'discount_percent': '0.0000', - 'discount_refunded': None, - 'ext_order_item_id': None, - 'free_shipping': '0', - 'gift_message_available': None, - 'gift_message_id': None, - 'hidden_tax_amount': None, - 'hidden_tax_canceled': None, - 'hidden_tax_invoiced': None, - 'hidden_tax_refunded': None, - 'is_nominal': '0', - 'is_qty_decimal': '0', - 'is_virtual': '0', - 'item_id': '11', - 'locked_do_invoice': None, - 'locked_do_ship': None, - 'name': ' Olympus Stylus 750 7.1MP Digital Camera', - 'no_discount': '0', - 'order_id': '8', - 'original_price': '161.9400', - 'parent_item_id': None, - 'price': '161.9400', - 'price_incl_tax': '161.9400', - 'product_id': '46', - 'product_options': 'a:1:{s:15:"info_buyRequest";a:4:{s:4:"uenc";s:116:"aHR0cDovL2xvY2FsaG9zdDo5MTAwL2luZGV4LnBocC9vbHltcHVzLXN0eWx1cy03NTAtNy0xbXAtZGlnaXRhbC1jYW1lcmEuaHRtbD9fX19TSUQ9VQ,,";s:7:"product";s:2:"46";s:15:"related_product";s:0:"";s:3:"qty";s:1:"1";}}', - 'product_type': 'simple', - 'qty_backordered': None, - 'qty_canceled': '0.0000', - 'qty_invoiced': '0.0000', - 'qty_ordered': '1.0000', - 'qty_refunded': '0.0000', - 'qty_shipped': '0.0000', - 'quote_item_id': '11', - 'row_invoiced': '0.0000', - 'row_total': '161.9400', - 'row_total_incl_tax': '161.9400', - 'row_weight': '2.0000', - 'sku': '750', - 'store_id': '1', - 'tax_amount': '0.0000', - 'tax_before_discount': None, - 'tax_canceled': None, - 'tax_invoiced': '0.0000', - 'tax_percent': '0.0000', - 'tax_refunded': None, - 'updated_at': '2015-03-19 12:57:14', - 'weee_tax_applied': 'a:0:{}', - 'weee_tax_applied_amount': '0.0000', - 'weee_tax_applied_row_amount': '0.0000', - 'weee_tax_disposition': '0.0000', - 'weee_tax_row_disposition': '0.0000', - 'weight': '2.0000'}], - 'order_currency_code': 'EUR', - 'order_id': '8', - 'original_increment_id': None, - 'payment': {'account_status': None, - 'additional_data': None, - 'additional_information': [], - 'address_status': None, - 'amount': None, - 'amount_authorized': None, - 'amount_canceled': None, - 'amount_ordered': '166.9400', - 'amount_paid': None, - 'amount_refunded': None, - 'anet_trans_method': None, - 'base_amount_authorized': None, - 'base_amount_canceled': None, - 'base_amount_ordered': '166.9400', - 'base_amount_paid': None, - 'base_amount_paid_online': None, - 'base_amount_refunded': None, - 'base_amount_refunded_online': None, - 'base_shipping_amount': '5.0000', - 'base_shipping_captured': None, - 'base_shipping_refunded': None, - 'cc_approval': None, - 'cc_avs_status': None, - 'cc_cid_status': None, - 'cc_debug_request_body': None, - 'cc_debug_response_body': None, - 'cc_debug_response_serialized': None, - 'cc_exp_month': '0', - 'cc_exp_year': '0', - 'cc_last4': None, - 'cc_number_enc': None, - 'cc_owner': None, - 'cc_raw_request': None, - 'cc_raw_response': None, - 'cc_secure_verify': None, - 'cc_ss_issue': None, - 'cc_ss_start_month': '0', - 'cc_ss_start_year': '0', - 'cc_status': None, - 'cc_status_description': None, - 'cc_trans_id': None, - 'cc_type': None, - 'customer_payment_id': None, - 'cybersource_token': None, - 'echeck_account_name': None, - 'echeck_account_type': None, - 'echeck_bank_name': None, - 'echeck_routing_number': None, - 'echeck_type': None, - 'flo2cash_account_id': None, - 'ideal_issuer_id': None, - 'ideal_issuer_title': None, - 'ideal_transaction_checked': None, - 'last_trans_id': None, - 'method': 'checkmo', - 'parent_id': '8', - 'paybox_question_number': None, - 'paybox_request_number': None, - 'payment_id': '8', - 'po_number': None, - 'protection_eligibility': None, - 'quote_payment_id': None, - 'shipping_amount': '5.0000', - 'shipping_captured': None, - 'shipping_refunded': None}, - 'payment_auth_expiration': None, - 'payment_authorization_amount': None, - 'payment_authorization_expiration': None, - 'paypal_ipn_customer_notified': None, - 'protect_code': 'db6fd3', - 'quote_address_id': None, - 'quote_id': '9', - 'real_order_id': None, - 'relation_child_id': None, - 'relation_child_real_id': None, - 'relation_parent_id': None, - 'relation_parent_real_id': None, - 'remote_ip': '10.0.2.2', - 'shipping_address': {'address_id': '16', - 'address_type': 'shipping', - 'city': 'Oberehrendingen', - 'company': None, - 'country_id': 'CH', - 'customer_address_id': None, - 'customer_id': None, - 'email': 'ChTrokaToral@rhyta.com', - 'fax': None, - 'firstname': "Ch'Troka", - 'gift_message_id': None, - 'lastname': 'Toral', - 'middlename': None, - 'parent_id': '8', - 'postcode': '5420', - 'prefix': None, - 'quote_address_id': None, - 'region': 'Aargau', - 'region_id': '104', - 'street': 'Clius 25', - 'suffix': None, - 'tax_id': None, - 'telephone': '056 524 10 76', - 'vat_id': None, - 'vat_is_valid': None, - 'vat_request_date': None, - 'vat_request_id': None, - 'vat_request_success': None}, - 'shipping_address_id': '16', - 'shipping_amount': '5.0000', - 'shipping_canceled': None, - 'shipping_description': 'Flat Rate - Fixed', - 'shipping_discount_amount': '0.0000', - 'shipping_hidden_tax_amount': '0.0000', - 'shipping_incl_tax': '5.0000', - 'shipping_invoiced': None, - 'shipping_method': 'flatrate_flatrate', - 'shipping_refunded': None, - 'shipping_tax_amount': '0.0000', - 'shipping_tax_refunded': None, - 'state': 'new', - 'status': 'pending', - 'status_history': [{'comment': None, - 'created_at': time.strftime(FMT), - 'entity_name': 'order', - 'is_customer_notified': '1', - 'is_visible_on_front': '0', - 'parent_id': '8', - 'status': 'pending', - 'store_id': '1'}], - 'store_currency_code': 'EUR', - 'store_id': '1', - 'store_name': 'Main Website\nMain Store\nEnglish', - 'store_to_base_rate': '1.0000', - 'store_to_order_rate': '1.0000', - 'subtotal': '161.9400', - 'subtotal_canceled': None, - 'subtotal_incl_tax': '161.9400', - 'subtotal_invoiced': None, - 'subtotal_refunded': None, - 'tax_amount': '0.0000', - 'tax_canceled': None, - 'tax_invoiced': None, - 'tax_percent': None, - 'tax_refunded': None, - 'total_canceled': None, - 'total_due': None, - 'total_invoiced': None, - 'total_item_count': '1', - 'total_offline_refunded': None, - 'total_online_refunded': None, - 'total_paid': None, - 'total_qty_ordered': '1.0000', - 'total_refunded': None, - 'tracking_numbers': None, - 'updated_at': '2015-03-19 12:57:14', - 'website_id': u'1', - 'weight': '2.0000', - 'x_forwarded_for': None}, - } diff --git a/connector_magento/tests/data_product.py b/connector_magento/tests/data_product.py deleted file mode 100644 index 58dd04809..000000000 --- a/connector_magento/tests/data_product.py +++ /dev/null @@ -1,113 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2013 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -# flake8: noqa : ignore style in this file because it is a data file -# only - -""" -Magento responses for calls done by the connector. - -This set of responses has been recorded for the synchronizations -with a Magento 1.7 version with demo data. - -It has been recorded using ``connector_magento.unit.backend_adapter.record`` -and ``connector_magento.unit.backend_adapter.output_recorder`` - -This set of data contains examples of imported products. -""" - -# a simple product with images -simple_product_and_images = { - ('ol_catalog_product.info', (122, None, None, 'id')): {'categories': ['1'], - 'color': '60', - 'cost': '2.0000', - 'country_of_manufacture': None, - 'created_at': '2007-08-24 19:53:06', - 'custom_design': '', - 'custom_design_from': None, - 'custom_design_to': None, - 'custom_layout_update': '', - 'description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'enable_googlecheckout': '0', - 'gender': '35', - 'gift_message_available': '', - 'group_price': [], - 'has_options': '0', - 'image_label': None, - 'is_recurring': '0', - 'manufacturer': None, - 'meta_description': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_keyword': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'meta_title': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'minimal_price': '22.0000', - 'model': 'Ink Eater:', - 'msrp': None, - 'msrp_display_actual_price_type': '4', - 'msrp_enabled': '2', - 'name': 'Ink Eater: Krylon Bombear Destroyed Tee', - 'news_from_date': None, - 'news_to_date': None, - 'old_id': None, - 'options_container': 'container2', - 'page_layout': None, - 'price': '22.0000', - 'product_id': '122', - 'recurring_profile': None, - 'required_options': '0', - 'set': '41', - 'shirt_size': '98', - 'short_description': "We bought these with the intention of making shirts for our family reunion, only to come back the next day to find each and every one of them had been tagged by The Bear. Oh well -- can't argue with art. Now you can make your grandparents proud by wearing an original piece of graf work to YOUR family reunion!", - 'sku': 'ink_lrg', - 'small_image_label': None, - 'special_from_date': None, - 'special_price': None, - 'special_to_date': None, - 'status': '1', - 'tax_class_id': '2', - 'thumbnail_label': None, - 'tier_price': [], - 'type': 'simple', - 'type_id': 'simple', - 'updated_at': '2013-09-02 08:01:34', - 'url_key': 'ink-eater-krylon-bombear-destroyed-tee-lrg', - 'url_path': 'ink-eater-krylon-bombear-destroyed-tee-lrg.html', - 'visibility': '1', - 'websites': ['1'], - 'weight': '0.5000'}, - ('product_media.list', (122, None, 'id')): [{'exclude': '1', - 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg', - 'label': '', - 'position': '0', - 'types': ['thumbnail'], - 'url': 'http://localhost:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg'}, - {'exclude': '0', - 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg', - 'label': '', - 'position': '3', - 'types': ['small_image'], - 'url': 'http://localhost:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg'}, - {'exclude': '0', - 'file': '/m/a/connector_magento_1.png', - 'label': '', - 'position': '4', - 'types': [], - 'url': 'http://localhost:9100/media/catalog/product/m/a/connector_magento_1.png'}], -} diff --git a/connector_magento/tests/fixtures/cassettes/:w b/connector_magento/tests/fixtures/cassettes/:w new file mode 100644 index 000000000..b49a96821 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/:w @@ -0,0 +1,163 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + a0310725164df95022657cdd6e5b10fa'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:25:44 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=9ordge0ntikmt57qicktgaj804; expires=Fri, 30-Jun-2017 + 16:25:44 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + a0310725164df95022657cdd6e5b10fa + + + + + + sales_order_shipment.create + + + + + + + + 100000201 + + + + + + Shipping Created + + 1 + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['516'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 987654321'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:37:31 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=vgs7a70g574dectus2hsjge880; expires=Fri, 30-Jun-2017 + 13:37:31 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + a0310725164df95022657cdd6e5b10fa + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:25:45 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=iq06s2uhh8kk4ro1oleem27rn2; expires=Fri, 30-Jun-2017 + 16:25:45 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/import_product_product_879.yaml b/connector_magento/tests/fixtures/cassettes/import_product_product_879.yaml new file mode 100644 index 000000000..c54013dfe --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/import_product_product_879.yaml @@ -0,0 +1,224 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + d8551e2d54e33dfeb3b496cd162fde82'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:27:02 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=s4tjrmk2l9u9ofp1muildkf3s2; expires=Fri, 30-Jun-2017 + 15:27:02 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + d8551e2d54e33dfeb3b496cd162fde82 + + + + + + ol_catalog_product.info + + + + + + + + 879 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id879skuwbk000c-Pink-Lset13typesimplecategorieswebsites1type_idsimplenameNoLIta + Cami-Pink-LdescriptionSilk + cami. Tie front detail, with hook and eye. Ruched neckline. Loose through + the chest and bodice. 100% Silk. Dry clean.short_descriptionCut + from tissue-weight silk crepe de chine, this airy style features a ruched + neckline with tie and an unfinished hem for a contrastinly rugged feel. Compliment + yours with skinny jeans.weight1.0000news_from_dateold_idnews_to_datestatus1url_keynolita-cami-pink-lvisibility1country_of_manufactureurl_pathnolita-cami-pink-l.htmlcategory_idsrequired_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-05-08T21:18:12+02:00updated_at2014-03-07 + 15:37:34price150.0000group_pricespecial_priceminimal_pricespecial_from_date2013-03-20 + 00:00:00special_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecolor21occasion29apparel_type34sleeve_length45fitsize78lengthgender94'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:27:02 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=dgcjfld71mih3lecqj26k93hc5; expires=Fri, 30-Jun-2017 + 15:27:02 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + d8551e2d54e33dfeb3b496cd162fde82 + + + + + + product_media.list + + + + + + + + 879 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/w/b/wbk000t_6.jpglabelposition1exclude0urlhttp://magento/media/catalog/product/w/b/wbk000t_6.jpgtypesimagesmall_imagethumbnail'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:27:02 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=fgl9j3d9u0iu39c2ecdnr43eo0; expires=Fri, 30-Jun-2017 + 15:27:02 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + d8551e2d54e33dfeb3b496cd162fde82 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:27:02 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=6rmksn21s3lun39ftp5kcgg464; expires=Fri, 30-Jun-2017 + 15:27:02 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/import_sale_order_100000200-1.yaml b/connector_magento/tests/fixtures/cassettes/import_sale_order_100000200-1.yaml new file mode 100644 index 000000000..00886091b --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/import_sale_order_100000200-1.yaml @@ -0,0 +1,1053 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 55a11bee5952f41348d2c24023066e4b'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:09 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=8j3i48or32d4briog03u6p6qg0; expires=Mon, 10-Jul-2017 + 14:01:09 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + sales_order.info + + + + + + + + 100000200-1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['352'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + statenewstatuspendingcoupon_codeprotect_codeb4ee57shipping_descriptionUnited + Parcel Service - Groundis_virtual0store_id1customer_id135base_discount_amount0.0000base_discount_canceledbase_discount_invoicedbase_discount_refundedbase_grand_total910.1500base_shipping_amount0.0000base_shipping_canceledbase_shipping_invoicedbase_shipping_refundedbase_shipping_tax_amount0.0000base_shipping_tax_refundedbase_subtotal835.0000base_subtotal_canceledbase_subtotal_invoicedbase_subtotal_refundedbase_tax_amount75.1500base_tax_canceledbase_tax_invoicedbase_tax_refundedbase_to_global_rate1.0000base_to_order_rate1.0000base_total_canceledbase_total_invoicedbase_total_invoiced_costbase_total_offline_refundedbase_total_online_refundedbase_total_paidbase_total_qty_orderedbase_total_refundeddiscount_amount0.0000discount_canceleddiscount_invoiceddiscount_refundedgrand_total910.1500shipping_amount0.0000shipping_canceledshipping_invoicedshipping_refundedshipping_tax_amount0.0000shipping_tax_refundedstore_to_base_rate1.0000store_to_order_rate1.0000subtotal835.0000subtotal_canceledsubtotal_invoicedsubtotal_refundedtax_amount75.1500tax_canceledtax_invoicedtax_refundedtotal_canceledtotal_invoicedtotal_offline_refundedtotal_online_refundedtotal_paidtotal_qty_ordered2.0000total_refundedcan_ship_partiallycan_ship_partially_itemcustomer_is_guest0customer_note_notify0billing_address_id382customer_group_id1edit_increment1email_sentforced_shipment_with_invoicepayment_auth_expirationquote_address_idquote_id680shipping_address_id383adjustment_negativeadjustment_positivebase_adjustment_negativebase_adjustment_positivebase_shipping_discount_amount0.0000base_subtotal_incl_tax910.1500base_total_duepayment_authorization_amountshipping_discount_amount0.0000subtotal_incl_tax910.1500total_dueweight2.0000customer_dobincrement_id100000200-1applied_rule_ids29base_currency_codeEURcustomer_emailjohndoe@magento.comcustomer_firstnameJohncustomer_lastnameDoecustomer_middlenamecustomer_prefixcustomer_suffixcustomer_taxvatdiscount_descriptionext_customer_idext_order_idglobal_currency_codeEURhold_before_statehold_before_statusorder_currency_codeEURoriginal_increment_id100000200relation_child_idrelation_child_real_idrelation_parent_id180relation_parent_real_id100000200remote_ipshipping_methodups_GNDstore_currency_codeEURstore_nameMain + Website + + Madison Island + + Englishx_forwarded_forcustomer_notecreated_at2017-06-30 + 12:35:40updated_at2017-06-30 + 12:35:40total_item_count2customer_gender1hidden_tax_amount0.0000base_hidden_tax_amount0.0000shipping_hidden_tax_amount0.0000base_shipping_hidden_tax_amnt0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedshipping_incl_tax0.0000base_shipping_incl_tax0.0000coupon_rule_namepaypal_ipn_customer_notified0gift_message_idbase_customer_balance_amountcustomer_balance_amountbase_customer_balance_invoicedcustomer_balance_invoicedbase_customer_balance_refundedcustomer_balance_refundedbs_customer_bal_total_refundedcustomer_bal_total_refundedgift_cardsbase_gift_cards_amountgift_cards_amountbase_gift_cards_invoicedgift_cards_invoicedbase_gift_cards_refundedgift_cards_refundedgw_idgw_allow_gift_receiptgw_add_cardgw_base_pricegw_pricegw_items_base_pricegw_items_pricegw_card_base_pricegw_card_pricegw_base_tax_amountgw_tax_amountgw_items_base_tax_amountgw_items_tax_amountgw_card_base_tax_amountgw_card_tax_amountgw_base_price_invoicedgw_price_invoicedgw_items_base_price_invoicedgw_items_price_invoicedgw_card_base_price_invoicedgw_card_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_items_base_tax_invoicedgw_items_tax_invoicedgw_card_base_tax_invoicedgw_card_tax_invoicedgw_base_price_refundedgw_price_refundedgw_items_base_price_refundedgw_items_price_refundedgw_card_base_price_refundedgw_card_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedgw_items_base_tax_refundedgw_items_tax_refundedgw_card_base_tax_refundedgw_card_tax_refundedreward_points_balancebase_reward_currency_amountreward_currency_amountbase_rwrd_crrncy_amt_invoicedrwrd_currency_amount_invoicedbase_rwrd_crrncy_amnt_refndedrwrd_crrncy_amnt_refundedreward_points_balance_refundreward_points_balance_refundedreward_salesrule_pointsimported0payment_authorization_expirationforced_do_shipment_with_invoicebase_shipping_hidden_tax_amount0.0000order_id195shipping_addressparent_id195customer_address_id91quote_address_idregion_id12customer_id135faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjohndoe@example.comtelephone888-888-8888country_idUSfirstnameJohnaddress_typeshippingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id383billing_addressparent_id195customer_address_id91quote_address_idregion_id12customer_id135faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjohndoe@example.comtelephone888-888-8888country_idUSfirstnameJohnaddress_typebillingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id382itemsitem_id596order_id195parent_item_idquote_item_id2473store_id1created_at2017-06-30 + 12:35:40updated_at2017-06-30 + 12:35:40product_id393product_typesimpleproduct_optionsa:1:{s:15:"info_buyRequest";a:5:{s:4:"uenc";s:64:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9lbGVjdHJvbmljcy5odG1s";s:7:"product";s:3:"393";s:8:"form_key";s:16:"18owwYZqmMopo5xy";s:3:"qty";d:1;s:7:"options";a:0:{}}}weight1.0000is_virtual0skuhde003nameMadison + RX3400descriptionapplied_rule_ids29additional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice715.0000base_price715.0000original_price715.0000base_original_price715.0000tax_percent9.0000tax_amount64.3500base_tax_amount64.3500tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total715.0000base_row_total715.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax779.3500base_price_incl_tax779.3500row_total_incl_tax779.3500base_row_total_incl_tax779.3500hidden_tax_amount0.0000base_hidden_tax_amount0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000item_id597order_id195parent_item_idquote_item_id2474store_id1created_at2017-06-30 + 12:35:40updated_at2017-06-30 + 12:35:40product_id396product_typesimpleproduct_optionsa:1:{s:15:"info_buyRequest";a:5:{s:4:"uenc";s:64:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9lbGVjdHJvbmljcy5odG1s";s:7:"product";s:3:"396";s:8:"form_key";s:16:"18owwYZqmMopo5xy";s:3:"qty";d:1;s:7:"options";a:0:{}}}weight1.0000is_virtual0skuhde006nameLarge + Camera Bagdescriptionapplied_rule_ids29additional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice120.0000base_price120.0000original_price120.0000base_original_price120.0000tax_percent9.0000tax_amount10.8000base_tax_amount10.8000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total120.0000base_row_total120.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax130.8000base_price_incl_tax130.8000row_total_incl_tax130.8000base_row_total_incl_tax130.8000hidden_tax_amount0.0000base_hidden_tax_amount0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000paymentparent_id195base_shipping_capturedshipping_capturedamount_refundedbase_amount_paidamount_canceledbase_amount_authorizedbase_amount_paid_onlinebase_amount_refunded_onlinebase_shipping_amount0.0000shipping_amount0.0000amount_paidamount_authorizedbase_amount_ordered910.1500base_shipping_refundedshipping_refundedbase_amount_refundedamount_ordered910.1500base_amount_canceledquote_payment_idadditional_datacc_exp_month0cc_ss_start_year0echeck_bank_namemethodcashondeliverycc_debug_request_bodycc_secure_verifyprotection_eligibilitycc_approvalcc_last4cc_status_descriptionecheck_typecc_debug_response_serializedcc_ss_start_month0echeck_account_typelast_trans_idcc_cid_statuscc_ownercc_typepo_numbercc_exp_year0cc_statusecheck_routing_numberaccount_statusanet_trans_methodcc_debug_response_bodycc_ss_issueecheck_account_namecc_avs_statuscc_number_enccc_trans_idpaybox_request_numberaddress_statusadditional_informationcybersource_tokenflo2cash_account_idideal_issuer_idideal_issuer_titleideal_transaction_checkedpaybox_question_numberpayment_id195status_historyparent_id195is_customer_notified0is_visible_on_front0commentstatuspendingcreated_at2017-06-30 + 12:35:40entity_nameorderstore_id1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:09 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=q796pvraen4dvonubsqe1idue3; expires=Mon, 10-Jul-2017 + 14:01:09 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + customer.info + + + + + + + + 135 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['335'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id135created_at2013-05-16T06:16:11+02:00updated_at2017-06-30 + 15:28:26increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billing91default_shipping91disable_auto_group_change0dobemailjohndoe@example.comfirstnameJohngender1group_id1lastnameDoemiddlenamepassword_hash60d0b6777081273c90d9dcf6342b18d511d539f5f119b56a364b2b0ff6dd29f1:O9hr8Lafe1STOCnJkp2ZHjFMrfM9plGnprefixreward_update_notification1reward_warning_notification1rp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:09 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=pgfq52nle1d03rh4d4m9itln22; expires=Mon, 10-Jul-2017 + 14:01:09 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + ol_customer_groups.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['343'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_group_id1customer_group_codeGeneraltax_class_id3'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:09 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=m9hg3na83cjacdiqqca33ak1p3; expires=Mon, 10-Jul-2017 + 14:01:09 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + customer_address.list + + + + + + + + + + + + customer_id + + + + + + eq + + 135 + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['496'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id91created_at2013-05-16 + 00:16:11updated_at2017-06-30 + 15:28:26cityCulver + Citycountry_idUSfirstnameJohnlastnameDoepostcode90232regionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200telephone888-888-8888is_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:09 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=cl52e3uj0g5foq9gblnltgq8a4; expires=Mon, 10-Jul-2017 + 14:01:09 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + customer_address.info + + + + + + + + 91 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id91created_at2013-05-16T02:16:11+02:00updated_at2017-06-30 + 15:28:26increment_idcityCulver + Citycompanycountry_idUSfaxfirstnameJohnlastnameDoemiddlenamepostcode90232prefixregionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200suffixtelephone888-888-8888vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:09 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=vnv5be6c357nimibep12g7mvd1; expires=Mon, 10-Jul-2017 + 14:01:09 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + ol_catalog_product.info + + + + + + + + 393 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id393skuhde003set14typesimplecategories924websites1type_idsimplenameMadison + RX3400description18-55mm + zoom lens. 3.0" LCD display with image editing features. Built in flash + with flash modes and pop up. SD/SDXC slot. Full 1080p HD video. Rechargable + Lithium-Ion battery. File formats: NEF (RAW), JPEG, MOV. 5" x 3" + x 4", 15oz.short_descriptionFor + budding photo connoisseurs.weight1.0000news_from_dateold_idnews_to_datestatus1url_keymadison-rx3400visibility4country_of_manufactureurl_pathmadison-rx3400.htmlcategory_ids924required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:20+01:00updated_at2013-05-30 + 00:02:17price715.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled1msrp_display_actual_price_type2msrp815.0000tax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecamera_type172color20camera_megapixels180electronic_type218'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:10 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=4b8mci1f9osm6qf5bbfgjk3lu2; expires=Mon, 10-Jul-2017 + 14:01:10 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + catalog_category.info + + + + + + + + 9 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id9is_active1position7level2parent_id2increment_idcreated_at2013-01-25T11:50:47+01:00updated_at2013-05-10 + 17:17:59nameVIPurl_keyvipthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/9all_children9path_in_storechildrenurl_pathvip.htmlchildren_count0display_modePRODUCTS_AND_PAGElanding_page31is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:10 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=n0g1rh6megor88n2ncci4c2g10; expires=Mon, 10-Jul-2017 + 14:01:10 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:10 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=9hr2bqnsedc7jvvvim8t5hmbu5; expires=Mon, 10-Jul-2017 + 14:01:10 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:10 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=aa2ahcnejga7l30oscjo05qac0; expires=Mon, 10-Jul-2017 + 14:01:10 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + catalog_category.info + + + + + + + + 24 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id24is_active1position3level3parent_id7increment_idcreated_at2013-01-25T12:08:54+01:00updated_at2013-03-08 + 19:27:16nameElectronicsurl_keyelectronicsthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7/24all_children24path_in_storechildrenurl_pathhome-decor/electronics.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:11 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=f81fdne5tmlf3b1h994h2i75k2; expires=Mon, 10-Jul-2017 + 14:01:11 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + catalog_category.info + + + + + + + + 7 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id7is_active1position5level2parent_id2increment_idcreated_at2013-01-25T11:49:05+01:00updated_at2013-05-08 + 05:26:34nameHome + & Decorurl_keyhome-decorthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7all_children7,22,23,24,25path_in_storechildren22,23,24,25url_pathhome-decor.htmlchildren_count4display_modePAGElanding_page21is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutone_columncustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:11 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ru3eifjvadlsu55rgoe5t807l2; expires=Mon, 10-Jul-2017 + 14:01:11 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + product_media.list + + + + + + + + 393 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hde003a_2.jpglabelposition2exclude0urlhttp://magento/media/catalog/product/h/d/hde003a_2.jpgtypesimagesmall_imagethumbnailfile/h/d/hde003b_.jpglabelposition4exclude0urlhttp://magento/media/catalog/product/h/d/hde003b_.jpgtypes'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:12 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=tt2gf2a8p3lusk1vjmlb9pv702; expires=Mon, 10-Jul-2017 + 14:01:12 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + ol_catalog_product.info + + + + + + + + 396 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id396skuhde006set14typesimplecategories24websites1type_idsimplenameLarge + Camera BagdescriptionFlap + closure. Microfiber. 8.5" x 5" x 6". Domestic.short_descriptionKeep + your camera safe and secure in our Large Camera case.weight1.0000news_from_dateold_idnews_to_datestatus1url_keylarge-camera-bagvisibility4country_of_manufactureurl_pathlarge-camera-bag.htmlcategory_ids24required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:20+01:00updated_at2013-05-16 + 20:15:59price120.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecamera_typecolor17camera_megapixelselectronic_type219'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:12 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=r6tvhl8d9h4mkflnciu3eb9cj3; expires=Mon, 10-Jul-2017 + 14:01:12 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + product_media.list + + + + + + + + 396 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hde006t.jpglabelposition4exclude0urlhttp://magento/media/catalog/product/h/d/hde006t.jpgtypesimagesmall_imagethumbnailfile/h/d/hde006b_1.jpglabelposition5exclude0urlhttp://magento/media/catalog/product/h/d/hde006b_1.jpgtypesfile/h/d/hde006c.jpglabelposition6exclude0urlhttp://magento/media/catalog/product/h/d/hde006c.jpgtypes'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:12 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=gi17vvgr59vrp6ld55g3dgdve0; expires=Mon, 10-Jul-2017 + 14:01:12 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + sales_order.get_parent + + + + + + + + 100000200 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['356'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 0'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:13 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=t9st6cio1318rn7ao7d8e2m6u7; expires=Mon, 10-Jul-2017 + 14:01:13 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 55a11bee5952f41348d2c24023066e4b + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:01:13 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=m4codm692cmuuthidhmkkiej65; expires=Mon, 10-Jul-2017 + 14:01:13 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/import_sale_order_100000201-no-website.yaml b/connector_magento/tests/fixtures/cassettes/import_sale_order_100000201-no-website.yaml new file mode 100644 index 000000000..b83b274ff --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/import_sale_order_100000201-no-website.yaml @@ -0,0 +1,948 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 7bd8047fd69712b39406280c699cf678'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:04 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=gam9d4rulhoivfbnegkfc85n31; expires=Fri, 30-Jun-2017 + 13:41:04 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + sales_order.info + + + + + + + + 100000201 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['344'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + statenewstatuspendingcoupon_codeprotect_code13520dshipping_descriptionUnited + Parcel Service - Groundis_virtual0store_id1customer_id136base_discount_amount0.0000base_discount_canceledbase_discount_invoicedbase_discount_refundedbase_grand_total387.2700base_shipping_amount12.3100base_shipping_canceledbase_shipping_invoicedbase_shipping_refundedbase_shipping_tax_amount0.0000base_shipping_tax_refundedbase_subtotal344.0000base_subtotal_canceledbase_subtotal_invoicedbase_subtotal_refundedbase_tax_amount30.9600base_tax_canceledbase_tax_invoicedbase_tax_refundedbase_to_global_rate1.0000base_to_order_rate1.0000base_total_canceledbase_total_invoicedbase_total_invoiced_costbase_total_offline_refundedbase_total_online_refundedbase_total_paidbase_total_qty_orderedbase_total_refundeddiscount_amount0.0000discount_canceleddiscount_invoiceddiscount_refundedgrand_total387.2700shipping_amount12.3100shipping_canceledshipping_invoicedshipping_refundedshipping_tax_amount0.0000shipping_tax_refundedstore_to_base_rate1.0000store_to_order_rate1.0000subtotal344.0000subtotal_canceledsubtotal_invoicedsubtotal_refundedtax_amount30.9600tax_canceledtax_invoicedtax_refundedtotal_canceledtotal_invoicedtotal_offline_refundedtotal_online_refundedtotal_paidtotal_qty_ordered3.0000total_refundedcan_ship_partiallycan_ship_partially_itemcustomer_is_guest0customer_note_notify1billing_address_id355customer_group_id1edit_incrementemail_sent1forced_shipment_with_invoicepayment_auth_expirationquote_address_idquote_id619shipping_address_id356adjustment_negativeadjustment_positivebase_adjustment_negativebase_adjustment_positivebase_shipping_discount_amount0.0000base_subtotal_incl_tax374.9600base_total_duepayment_authorization_amountshipping_discount_amount0.0000subtotal_incl_tax374.9600total_dueweight3.0000customer_dobincrement_id100000201applied_rule_idsbase_currency_codeUSDcustomer_emailjanedoe@magento.comcustomer_firstnameJanecustomer_lastnameDoecustomer_middlenamecustomer_prefixcustomer_suffixcustomer_taxvatdiscount_descriptionext_customer_idext_order_idglobal_currency_codeUSDhold_before_statehold_before_statusorder_currency_codeUSDoriginal_increment_idrelation_child_idrelation_child_real_idrelation_parent_idrelation_parent_real_idremote_ip198.228.200.167shipping_methodups_GNDstore_currency_codeUSDstore_nameMain + Website + + Madison Island + + Englishx_forwarded_forcustomer_notecreated_at2013-05-25 + 21:37:05updated_at2013-05-25 + 21:37:06total_item_count2customer_genderhidden_tax_amount0.0000base_hidden_tax_amount0.0000shipping_hidden_tax_amount0.0000base_shipping_hidden_tax_amnt0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedshipping_incl_tax12.3100base_shipping_incl_tax12.3100coupon_rule_namepaypal_ipn_customer_notified0gift_message_idbase_customer_balance_amount0.0000customer_balance_amount0.0000base_customer_balance_invoicedcustomer_balance_invoicedbase_customer_balance_refundedcustomer_balance_refundedbs_customer_bal_total_refundedcustomer_bal_total_refundedgift_cardsa:0:{}base_gift_cards_amount0.0000gift_cards_amount0.0000base_gift_cards_invoicedgift_cards_invoicedbase_gift_cards_refundedgift_cards_refundedgw_idgw_allow_gift_receipt0gw_add_card0gw_base_price0.0000gw_price0.0000gw_items_base_price0.0000gw_items_price0.0000gw_card_base_price0.0000gw_card_price0.0000gw_base_tax_amount0.0000gw_tax_amount0.0000gw_items_base_tax_amount0.0000gw_items_tax_amount0.0000gw_card_base_tax_amount0.0000gw_card_tax_amount0.0000gw_base_price_invoicedgw_price_invoicedgw_items_base_price_invoicedgw_items_price_invoicedgw_card_base_price_invoicedgw_card_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_items_base_tax_invoicedgw_items_tax_invoicedgw_card_base_tax_invoicedgw_card_tax_invoicedgw_base_price_refundedgw_price_refundedgw_items_base_price_refundedgw_items_price_refundedgw_card_base_price_refundedgw_card_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedgw_items_base_tax_refundedgw_items_tax_refundedgw_card_base_tax_refundedgw_card_tax_refundedreward_points_balance0base_reward_currency_amount0.0000reward_currency_amount0.0000base_rwrd_crrncy_amt_invoicedrwrd_currency_amount_invoicedbase_rwrd_crrncy_amnt_refndedrwrd_crrncy_amnt_refundedreward_points_balance_refundreward_points_balance_refundedreward_salesrule_pointsimported0payment_authorization_expirationforced_do_shipment_with_invoicebase_shipping_hidden_tax_amount0.0000order_id181shipping_addressparent_id181customer_address_id92quote_address_idregion_id12customer_id136faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjanedoe@magento.comtelephone888-888-8888country_idUSfirstnameJaneaddress_typeshippingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id356billing_addressparent_id181customer_address_id92quote_address_idregion_id12customer_id136faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjanedoe@magento.comtelephone888-888-8888country_idUSfirstnameJaneaddress_typebillingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id355itemsitem_id543order_id181parent_item_idquote_item_id2320store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id418product_typeconfigurableproduct_optionsa:10:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MTgvY2F0ZWdvcnkvMTEv";s:7:"product";s:3:"418";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"26";i:180;s:2:"81";}s:3:"qty";s:1:"2";s:10:"return_url";s:0:"";}s:15:"attributes_info";a:2:{i:0;a:2:{s:5:"label";s:5:"Color";s:5:"value";s:6:"Indigo";}i:1;a:2:{s:5:"label";s:4:"Size";s:5:"value";s:2:"XS";}}s:11:"simple_name";s:9:"Tori + Tank";s:10:"simple_sku";s:8:"wbk003xs";s:20:"product_calculations";i:1;s:13:"shipment_type";i:0;s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwbk003xsnameTori + Tankdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered2.0000qty_refunded0.0000qty_shipped0.0000base_costprice60.0000base_price60.0000original_price60.0000base_original_price60.0000tax_percent9.0000tax_amount10.8000base_tax_amount10.8000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total120.0000base_row_total120.0000row_invoiced0.0000base_row_invoiced0.0000row_weight2.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax65.4000base_price_incl_tax65.4000row_total_incl_tax130.8000base_row_total_incl_tax130.8000hidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000has_children1item_id544order_id181parent_item_id543quote_item_id2321store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id512product_typesimpleproduct_optionsa:5:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MTgvY2F0ZWdvcnkvMTEv";s:7:"product";s:3:"418";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"26";i:180;s:2:"81";}s:3:"qty";s:1:"2";s:10:"return_url";s:0:"";}s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwbk003xsnameTori + Tankdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered2.0000qty_refunded0.0000qty_shipped0.0000base_costprice0.0000base_price0.0000original_price0.0000base_original_pricetax_percent0.0000tax_amount0.0000base_tax_amount0.0000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total0.0000base_row_total0.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_taxbase_price_incl_taxrow_total_incl_taxbase_row_total_incl_taxhidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amntbase_weee_tax_applied_row_amountweee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000item_id545order_id181parent_item_idquote_item_id2322store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id423product_typeconfigurableproduct_optionsa:10:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MjMvY2F0ZWdvcnkvMTMv";s:7:"product";s:3:"423";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"18";i:180;s:2:"80";}s:3:"qty";s:1:"1";s:10:"return_url";s:0:"";}s:15:"attributes_info";a:2:{i:0;a:2:{s:5:"label";s:5:"Color";s:5:"value";s:6:"Purple";}i:1;a:2:{s:5:"label";s:4:"Size";s:5:"value";s:1:"S";}}s:11:"simple_name";s:21:"Racer + Back Maxi Dress";s:10:"simple_sku";s:6:"wsd005";s:20:"product_calculations";i:1;s:13:"shipment_type";i:0;s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwsd005nameRacer + Back Maxi Dressdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice224.0000base_price224.0000original_price224.0000base_original_price224.0000tax_percent9.0000tax_amount20.1600base_tax_amount20.1600tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total224.0000base_row_total224.0000row_invoiced0.0000base_row_invoiced0.0000row_weight1.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax244.1600base_price_incl_tax244.1600row_total_incl_tax244.1600base_row_total_incl_tax244.1600hidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000has_children1item_id546order_id181parent_item_id545quote_item_id2323store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id302product_typesimpleproduct_optionsa:5:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MjMvY2F0ZWdvcnkvMTMv";s:7:"product";s:3:"423";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"18";i:180;s:2:"80";}s:3:"qty";s:1:"1";s:10:"return_url";s:0:"";}s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwsd005nameRacer + Back Maxi Dressdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice0.0000base_price0.0000original_price0.0000base_original_pricetax_percent0.0000tax_amount0.0000base_tax_amount0.0000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total0.0000base_row_total0.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_taxbase_price_incl_taxrow_total_incl_taxbase_row_total_incl_taxhidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amntbase_weee_tax_applied_row_amountweee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000paymentparent_id181base_shipping_capturedshipping_capturedamount_refundedbase_amount_paidamount_canceledbase_amount_authorizedbase_amount_paid_onlinebase_amount_refunded_onlinebase_shipping_amount12.3100shipping_amount12.3100amount_paidamount_authorizedbase_amount_ordered387.2700base_shipping_refundedshipping_refundedbase_amount_refundedamount_ordered387.2700base_amount_canceledquote_payment_idadditional_datacc_exp_month0cc_ss_start_year0echeck_bank_namemethodcheckmocc_debug_request_bodycc_secure_verifyprotection_eligibilitycc_approvalcc_last4cc_status_descriptionecheck_typecc_debug_response_serializedcc_ss_start_month0echeck_account_typelast_trans_idcc_cid_statuscc_ownercc_typepo_numbercc_exp_year0cc_statusecheck_routing_numberaccount_statusanet_trans_methodcc_debug_response_bodycc_ss_issueecheck_account_namecc_avs_statuscc_number_enccc_trans_idpaybox_request_numberaddress_statusadditional_informationcybersource_tokenflo2cash_account_idideal_issuer_idideal_issuer_titleideal_transaction_checkedpaybox_question_numberpayment_id181status_historyparent_id181is_customer_notified1is_visible_on_front0commentstatuspendingcreated_at2013-05-25 + 21:37:06entity_nameorderstore_id1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:05 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=pfkosqhm3bhjh4dvo8km9tti30; expires=Fri, 30-Jun-2017 + 13:41:05 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + customer.info + + + + + + + + 136 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['335'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id136created_at2013-05-16T06:20:45+02:00updated_at2014-05-03 + 21:36:47increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billing92default_shipping92disable_auto_group_change0dobemailjanedoe@example.comfirstnameJanegendergroup_id1lastnameDoemiddlenamepassword_hash80f8bdf79491b99b8180a4e746046ea5:8huK4jwUrBIwUTnw3LuWKT9MzAQghb5zprefixreward_update_notification1reward_warning_notification1rp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:05 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=fs03npe5gss1h7jbcf0fkce344; expires=Fri, 30-Jun-2017 + 13:41:05 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + ol_customer_groups.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['343'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_group_id1customer_group_codeGeneraltax_class_id3'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:05 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=81pbd4lbrcbvvbt8h52qc5g5d3; expires=Fri, 30-Jun-2017 + 13:41:05 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + customer_address.list + + + + + + + + + + + + customer_id + + + + + + eq + + 136 + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['496'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id92created_at2013-05-17 + 01:20:45updated_at2014-05-03 + 21:36:47cityCulver + Citycountry_idUSfirstnameJanelastnameDoepostcode90232regionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200telephone888-888-8888is_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:05 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=g8635t1jlq7mn7j46rmr78ehk7; expires=Fri, 30-Jun-2017 + 13:41:05 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + customer_address.info + + + + + + + + 92 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id92created_at2013-05-17T03:20:45+02:00updated_at2014-05-03 + 21:36:47increment_idcityCulver + Citycompanycountry_idUSfaxfirstnameJanelastnameDoemiddlenamepostcode90232prefixregionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200suffixtelephone888-888-8888vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:05 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=jbu63g98dnm2222ef3ssm04fr0; expires=Fri, 30-Jun-2017 + 13:41:05 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + ol_catalog_product.info + + + + + + + + 512 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id512skuwbk003xsset13typesimplecategorieswebsites1type_idsimplenameTori + TankdescriptionRibbed + scoop neck tank. 100% cotton.Machine wash.short_descriptionA + simple ribbed cotton tank. Great for layering.weight1.0000news_from_date2013-03-01 + 00:00:00old_idnews_to_datestatus1url_keytori-tankvisibility1country_of_manufactureurl_pathtori-tank-577.htmlcategory_idsrequired_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-12T03:32:00+01:00updated_at2014-03-08 + 08:06:21price60.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecolor26occasion31apparel_type35sleeve_length45fitsize81lengthgender94'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:06 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=hchb1pmf0739fl7rkt5fdkpdd6; expires=Fri, 30-Jun-2017 + 13:41:06 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + product_media.list + + + + + + + + 512 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/w/b/wbk003t_4.jpglabelposition1exclude0urlhttp://magento/media/catalog/product/w/b/wbk003t_4.jpgtypesimagesmall_imagethumbnail'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:06 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ng8pj5rng9epo1881nd4ul8ja1; expires=Fri, 30-Jun-2017 + 13:41:06 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + ol_catalog_product.info + + + + + + + + 302 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id302skuwsd005set13typesimplecategories13websites1type_idsimplenameRacer + Back Maxi DressdescriptionRacer + back maxi dress. Pull over style. Loose fitting. Straight skirt falls to floor. + Viscose. short_descriptionThis + classic maxi dress drapes beautifully throughout body and sweeps in a light + A-line to the floor. Keep a casual chic look by pairing with a jean jacket + or go glam with a statement necklace.weight1.0000news_from_date2013-03-01 + 00:00:00old_idnews_to_datestatus1url_keyracer-back-maxi-dressvisibility1country_of_manufactureurl_pathracer-back-maxi-dress.htmlcategory_ids13required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:15+01:00updated_at2013-05-10 + 21:22:33price280.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecolor18occasion31apparel_type33sleeve_length45fitsize80length84gender94'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:06 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ndbatqgkviasnujcc7hm7aa2o5; expires=Fri, 30-Jun-2017 + 13:41:06 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + catalog_category.info + + + + + + + + 13 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id13is_active1position4level3parent_id4increment_idcreated_at2013-01-25T11:59:21+01:00updated_at2013-03-05 + 04:45:24nameDresses + & Skirtsurl_keydresses-skirtsthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/4/13all_children13path_in_storechildrenurl_pathwomen/dresses-skirts.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:06 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=coqjs3ilconc0t0om520iblqj0; expires=Fri, 30-Jun-2017 + 13:41:06 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + catalog_category.info + + + + + + + + 4 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id4is_active1position2level2parent_id2increment_idcreated_at2013-01-25T11:43:31+01:00updated_at2013-05-15 + 22:50:23nameWomenurl_keywomenthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/4all_children4,10,11,12,13path_in_storechildren10,11,12,13url_pathwomen.htmlchildren_count4display_modePAGElanding_page27is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutone_columncustom_layout_update<reference> + + <remove name="right.poll"/> + + </reference>'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:07 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=45q152e9lu33brdqkopo1pg9g4; expires=Fri, 30-Jun-2017 + 13:41:06 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:07 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=tqi1gcnv15c54927lntuensrf3; expires=Fri, 30-Jun-2017 + 13:41:07 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:07 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=rj42t8ghtq8sicokf3706p2i41; expires=Fri, 30-Jun-2017 + 13:41:07 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + product_media.list + + + + + + + + 302 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/w/s/wsd005t_1.jpglabelposition1exclude0urlhttp://magento/media/catalog/product/w/s/wsd005t_1.jpgtypesimagesmall_imagethumbnailfile/w/s/wsd005b_1.jpglabelposition3exclude0urlhttp://magento/media/catalog/product/w/s/wsd005b_1.jpgtypes'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:08 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=btv3qnpblbj22vivmqg4nr17p5; expires=Fri, 30-Jun-2017 + 13:41:08 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:08 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=mtietvimfuor2lunsd8bn1pdo6; expires=Fri, 30-Jun-2017 + 13:41:08 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/import_sale_order_100000201.yaml b/connector_magento/tests/fixtures/cassettes/import_sale_order_100000201.yaml new file mode 100644 index 000000000..b83b274ff --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/import_sale_order_100000201.yaml @@ -0,0 +1,948 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 7bd8047fd69712b39406280c699cf678'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:04 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=gam9d4rulhoivfbnegkfc85n31; expires=Fri, 30-Jun-2017 + 13:41:04 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + sales_order.info + + + + + + + + 100000201 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['344'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + statenewstatuspendingcoupon_codeprotect_code13520dshipping_descriptionUnited + Parcel Service - Groundis_virtual0store_id1customer_id136base_discount_amount0.0000base_discount_canceledbase_discount_invoicedbase_discount_refundedbase_grand_total387.2700base_shipping_amount12.3100base_shipping_canceledbase_shipping_invoicedbase_shipping_refundedbase_shipping_tax_amount0.0000base_shipping_tax_refundedbase_subtotal344.0000base_subtotal_canceledbase_subtotal_invoicedbase_subtotal_refundedbase_tax_amount30.9600base_tax_canceledbase_tax_invoicedbase_tax_refundedbase_to_global_rate1.0000base_to_order_rate1.0000base_total_canceledbase_total_invoicedbase_total_invoiced_costbase_total_offline_refundedbase_total_online_refundedbase_total_paidbase_total_qty_orderedbase_total_refundeddiscount_amount0.0000discount_canceleddiscount_invoiceddiscount_refundedgrand_total387.2700shipping_amount12.3100shipping_canceledshipping_invoicedshipping_refundedshipping_tax_amount0.0000shipping_tax_refundedstore_to_base_rate1.0000store_to_order_rate1.0000subtotal344.0000subtotal_canceledsubtotal_invoicedsubtotal_refundedtax_amount30.9600tax_canceledtax_invoicedtax_refundedtotal_canceledtotal_invoicedtotal_offline_refundedtotal_online_refundedtotal_paidtotal_qty_ordered3.0000total_refundedcan_ship_partiallycan_ship_partially_itemcustomer_is_guest0customer_note_notify1billing_address_id355customer_group_id1edit_incrementemail_sent1forced_shipment_with_invoicepayment_auth_expirationquote_address_idquote_id619shipping_address_id356adjustment_negativeadjustment_positivebase_adjustment_negativebase_adjustment_positivebase_shipping_discount_amount0.0000base_subtotal_incl_tax374.9600base_total_duepayment_authorization_amountshipping_discount_amount0.0000subtotal_incl_tax374.9600total_dueweight3.0000customer_dobincrement_id100000201applied_rule_idsbase_currency_codeUSDcustomer_emailjanedoe@magento.comcustomer_firstnameJanecustomer_lastnameDoecustomer_middlenamecustomer_prefixcustomer_suffixcustomer_taxvatdiscount_descriptionext_customer_idext_order_idglobal_currency_codeUSDhold_before_statehold_before_statusorder_currency_codeUSDoriginal_increment_idrelation_child_idrelation_child_real_idrelation_parent_idrelation_parent_real_idremote_ip198.228.200.167shipping_methodups_GNDstore_currency_codeUSDstore_nameMain + Website + + Madison Island + + Englishx_forwarded_forcustomer_notecreated_at2013-05-25 + 21:37:05updated_at2013-05-25 + 21:37:06total_item_count2customer_genderhidden_tax_amount0.0000base_hidden_tax_amount0.0000shipping_hidden_tax_amount0.0000base_shipping_hidden_tax_amnt0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedshipping_incl_tax12.3100base_shipping_incl_tax12.3100coupon_rule_namepaypal_ipn_customer_notified0gift_message_idbase_customer_balance_amount0.0000customer_balance_amount0.0000base_customer_balance_invoicedcustomer_balance_invoicedbase_customer_balance_refundedcustomer_balance_refundedbs_customer_bal_total_refundedcustomer_bal_total_refundedgift_cardsa:0:{}base_gift_cards_amount0.0000gift_cards_amount0.0000base_gift_cards_invoicedgift_cards_invoicedbase_gift_cards_refundedgift_cards_refundedgw_idgw_allow_gift_receipt0gw_add_card0gw_base_price0.0000gw_price0.0000gw_items_base_price0.0000gw_items_price0.0000gw_card_base_price0.0000gw_card_price0.0000gw_base_tax_amount0.0000gw_tax_amount0.0000gw_items_base_tax_amount0.0000gw_items_tax_amount0.0000gw_card_base_tax_amount0.0000gw_card_tax_amount0.0000gw_base_price_invoicedgw_price_invoicedgw_items_base_price_invoicedgw_items_price_invoicedgw_card_base_price_invoicedgw_card_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_items_base_tax_invoicedgw_items_tax_invoicedgw_card_base_tax_invoicedgw_card_tax_invoicedgw_base_price_refundedgw_price_refundedgw_items_base_price_refundedgw_items_price_refundedgw_card_base_price_refundedgw_card_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedgw_items_base_tax_refundedgw_items_tax_refundedgw_card_base_tax_refundedgw_card_tax_refundedreward_points_balance0base_reward_currency_amount0.0000reward_currency_amount0.0000base_rwrd_crrncy_amt_invoicedrwrd_currency_amount_invoicedbase_rwrd_crrncy_amnt_refndedrwrd_crrncy_amnt_refundedreward_points_balance_refundreward_points_balance_refundedreward_salesrule_pointsimported0payment_authorization_expirationforced_do_shipment_with_invoicebase_shipping_hidden_tax_amount0.0000order_id181shipping_addressparent_id181customer_address_id92quote_address_idregion_id12customer_id136faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjanedoe@magento.comtelephone888-888-8888country_idUSfirstnameJaneaddress_typeshippingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id356billing_addressparent_id181customer_address_id92quote_address_idregion_id12customer_id136faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjanedoe@magento.comtelephone888-888-8888country_idUSfirstnameJaneaddress_typebillingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id355itemsitem_id543order_id181parent_item_idquote_item_id2320store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id418product_typeconfigurableproduct_optionsa:10:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MTgvY2F0ZWdvcnkvMTEv";s:7:"product";s:3:"418";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"26";i:180;s:2:"81";}s:3:"qty";s:1:"2";s:10:"return_url";s:0:"";}s:15:"attributes_info";a:2:{i:0;a:2:{s:5:"label";s:5:"Color";s:5:"value";s:6:"Indigo";}i:1;a:2:{s:5:"label";s:4:"Size";s:5:"value";s:2:"XS";}}s:11:"simple_name";s:9:"Tori + Tank";s:10:"simple_sku";s:8:"wbk003xs";s:20:"product_calculations";i:1;s:13:"shipment_type";i:0;s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwbk003xsnameTori + Tankdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered2.0000qty_refunded0.0000qty_shipped0.0000base_costprice60.0000base_price60.0000original_price60.0000base_original_price60.0000tax_percent9.0000tax_amount10.8000base_tax_amount10.8000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total120.0000base_row_total120.0000row_invoiced0.0000base_row_invoiced0.0000row_weight2.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax65.4000base_price_incl_tax65.4000row_total_incl_tax130.8000base_row_total_incl_tax130.8000hidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000has_children1item_id544order_id181parent_item_id543quote_item_id2321store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id512product_typesimpleproduct_optionsa:5:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MTgvY2F0ZWdvcnkvMTEv";s:7:"product";s:3:"418";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"26";i:180;s:2:"81";}s:3:"qty";s:1:"2";s:10:"return_url";s:0:"";}s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwbk003xsnameTori + Tankdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered2.0000qty_refunded0.0000qty_shipped0.0000base_costprice0.0000base_price0.0000original_price0.0000base_original_pricetax_percent0.0000tax_amount0.0000base_tax_amount0.0000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total0.0000base_row_total0.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_taxbase_price_incl_taxrow_total_incl_taxbase_row_total_incl_taxhidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amntbase_weee_tax_applied_row_amountweee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000item_id545order_id181parent_item_idquote_item_id2322store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id423product_typeconfigurableproduct_optionsa:10:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MjMvY2F0ZWdvcnkvMTMv";s:7:"product";s:3:"423";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"18";i:180;s:2:"80";}s:3:"qty";s:1:"1";s:10:"return_url";s:0:"";}s:15:"attributes_info";a:2:{i:0;a:2:{s:5:"label";s:5:"Color";s:5:"value";s:6:"Purple";}i:1;a:2:{s:5:"label";s:4:"Size";s:5:"value";s:1:"S";}}s:11:"simple_name";s:21:"Racer + Back Maxi Dress";s:10:"simple_sku";s:6:"wsd005";s:20:"product_calculations";i:1;s:13:"shipment_type";i:0;s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwsd005nameRacer + Back Maxi Dressdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice224.0000base_price224.0000original_price224.0000base_original_price224.0000tax_percent9.0000tax_amount20.1600base_tax_amount20.1600tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total224.0000base_row_total224.0000row_invoiced0.0000base_row_invoiced0.0000row_weight1.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax244.1600base_price_incl_tax244.1600row_total_incl_tax244.1600base_row_total_incl_tax244.1600hidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000has_children1item_id546order_id181parent_item_id545quote_item_id2323store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id302product_typesimpleproduct_optionsa:5:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MjMvY2F0ZWdvcnkvMTMv";s:7:"product";s:3:"423";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"18";i:180;s:2:"80";}s:3:"qty";s:1:"1";s:10:"return_url";s:0:"";}s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwsd005nameRacer + Back Maxi Dressdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice0.0000base_price0.0000original_price0.0000base_original_pricetax_percent0.0000tax_amount0.0000base_tax_amount0.0000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total0.0000base_row_total0.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_taxbase_price_incl_taxrow_total_incl_taxbase_row_total_incl_taxhidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amntbase_weee_tax_applied_row_amountweee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000paymentparent_id181base_shipping_capturedshipping_capturedamount_refundedbase_amount_paidamount_canceledbase_amount_authorizedbase_amount_paid_onlinebase_amount_refunded_onlinebase_shipping_amount12.3100shipping_amount12.3100amount_paidamount_authorizedbase_amount_ordered387.2700base_shipping_refundedshipping_refundedbase_amount_refundedamount_ordered387.2700base_amount_canceledquote_payment_idadditional_datacc_exp_month0cc_ss_start_year0echeck_bank_namemethodcheckmocc_debug_request_bodycc_secure_verifyprotection_eligibilitycc_approvalcc_last4cc_status_descriptionecheck_typecc_debug_response_serializedcc_ss_start_month0echeck_account_typelast_trans_idcc_cid_statuscc_ownercc_typepo_numbercc_exp_year0cc_statusecheck_routing_numberaccount_statusanet_trans_methodcc_debug_response_bodycc_ss_issueecheck_account_namecc_avs_statuscc_number_enccc_trans_idpaybox_request_numberaddress_statusadditional_informationcybersource_tokenflo2cash_account_idideal_issuer_idideal_issuer_titleideal_transaction_checkedpaybox_question_numberpayment_id181status_historyparent_id181is_customer_notified1is_visible_on_front0commentstatuspendingcreated_at2013-05-25 + 21:37:06entity_nameorderstore_id1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:05 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=pfkosqhm3bhjh4dvo8km9tti30; expires=Fri, 30-Jun-2017 + 13:41:05 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + customer.info + + + + + + + + 136 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['335'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id136created_at2013-05-16T06:20:45+02:00updated_at2014-05-03 + 21:36:47increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billing92default_shipping92disable_auto_group_change0dobemailjanedoe@example.comfirstnameJanegendergroup_id1lastnameDoemiddlenamepassword_hash80f8bdf79491b99b8180a4e746046ea5:8huK4jwUrBIwUTnw3LuWKT9MzAQghb5zprefixreward_update_notification1reward_warning_notification1rp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:05 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=fs03npe5gss1h7jbcf0fkce344; expires=Fri, 30-Jun-2017 + 13:41:05 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + ol_customer_groups.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['343'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_group_id1customer_group_codeGeneraltax_class_id3'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:05 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=81pbd4lbrcbvvbt8h52qc5g5d3; expires=Fri, 30-Jun-2017 + 13:41:05 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + customer_address.list + + + + + + + + + + + + customer_id + + + + + + eq + + 136 + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['496'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id92created_at2013-05-17 + 01:20:45updated_at2014-05-03 + 21:36:47cityCulver + Citycountry_idUSfirstnameJanelastnameDoepostcode90232regionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200telephone888-888-8888is_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:05 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=g8635t1jlq7mn7j46rmr78ehk7; expires=Fri, 30-Jun-2017 + 13:41:05 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + customer_address.info + + + + + + + + 92 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id92created_at2013-05-17T03:20:45+02:00updated_at2014-05-03 + 21:36:47increment_idcityCulver + Citycompanycountry_idUSfaxfirstnameJanelastnameDoemiddlenamepostcode90232prefixregionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200suffixtelephone888-888-8888vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:05 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=jbu63g98dnm2222ef3ssm04fr0; expires=Fri, 30-Jun-2017 + 13:41:05 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + ol_catalog_product.info + + + + + + + + 512 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id512skuwbk003xsset13typesimplecategorieswebsites1type_idsimplenameTori + TankdescriptionRibbed + scoop neck tank. 100% cotton.Machine wash.short_descriptionA + simple ribbed cotton tank. Great for layering.weight1.0000news_from_date2013-03-01 + 00:00:00old_idnews_to_datestatus1url_keytori-tankvisibility1country_of_manufactureurl_pathtori-tank-577.htmlcategory_idsrequired_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-12T03:32:00+01:00updated_at2014-03-08 + 08:06:21price60.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecolor26occasion31apparel_type35sleeve_length45fitsize81lengthgender94'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:06 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=hchb1pmf0739fl7rkt5fdkpdd6; expires=Fri, 30-Jun-2017 + 13:41:06 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + product_media.list + + + + + + + + 512 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/w/b/wbk003t_4.jpglabelposition1exclude0urlhttp://magento/media/catalog/product/w/b/wbk003t_4.jpgtypesimagesmall_imagethumbnail'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:06 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ng8pj5rng9epo1881nd4ul8ja1; expires=Fri, 30-Jun-2017 + 13:41:06 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + ol_catalog_product.info + + + + + + + + 302 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id302skuwsd005set13typesimplecategories13websites1type_idsimplenameRacer + Back Maxi DressdescriptionRacer + back maxi dress. Pull over style. Loose fitting. Straight skirt falls to floor. + Viscose. short_descriptionThis + classic maxi dress drapes beautifully throughout body and sweeps in a light + A-line to the floor. Keep a casual chic look by pairing with a jean jacket + or go glam with a statement necklace.weight1.0000news_from_date2013-03-01 + 00:00:00old_idnews_to_datestatus1url_keyracer-back-maxi-dressvisibility1country_of_manufactureurl_pathracer-back-maxi-dress.htmlcategory_ids13required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:15+01:00updated_at2013-05-10 + 21:22:33price280.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecolor18occasion31apparel_type33sleeve_length45fitsize80length84gender94'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:06 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ndbatqgkviasnujcc7hm7aa2o5; expires=Fri, 30-Jun-2017 + 13:41:06 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + catalog_category.info + + + + + + + + 13 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id13is_active1position4level3parent_id4increment_idcreated_at2013-01-25T11:59:21+01:00updated_at2013-03-05 + 04:45:24nameDresses + & Skirtsurl_keydresses-skirtsthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/4/13all_children13path_in_storechildrenurl_pathwomen/dresses-skirts.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:06 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=coqjs3ilconc0t0om520iblqj0; expires=Fri, 30-Jun-2017 + 13:41:06 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + catalog_category.info + + + + + + + + 4 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id4is_active1position2level2parent_id2increment_idcreated_at2013-01-25T11:43:31+01:00updated_at2013-05-15 + 22:50:23nameWomenurl_keywomenthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/4all_children4,10,11,12,13path_in_storechildren10,11,12,13url_pathwomen.htmlchildren_count4display_modePAGElanding_page27is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutone_columncustom_layout_update<reference> + + <remove name="right.poll"/> + + </reference>'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:07 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=45q152e9lu33brdqkopo1pg9g4; expires=Fri, 30-Jun-2017 + 13:41:06 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:07 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=tqi1gcnv15c54927lntuensrf3; expires=Fri, 30-Jun-2017 + 13:41:07 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:07 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=rj42t8ghtq8sicokf3706p2i41; expires=Fri, 30-Jun-2017 + 13:41:07 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + product_media.list + + + + + + + + 302 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/w/s/wsd005t_1.jpglabelposition1exclude0urlhttp://magento/media/catalog/product/w/s/wsd005t_1.jpgtypesimagesmall_imagethumbnailfile/w/s/wsd005b_1.jpglabelposition3exclude0urlhttp://magento/media/catalog/product/w/s/wsd005b_1.jpgtypes'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:08 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=btv3qnpblbj22vivmqg4nr17p5; expires=Fri, 30-Jun-2017 + 13:41:08 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 7bd8047fd69712b39406280c699cf678 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:41:08 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=mtietvimfuor2lunsd8bn1pdo6; expires=Fri, 30-Jun-2017 + 13:41:08 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/import_sale_order_145000008.yaml b/connector_magento/tests/fixtures/cassettes/import_sale_order_145000008.yaml new file mode 100644 index 000000000..d66ef7d33 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/import_sale_order_145000008.yaml @@ -0,0 +1,719 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + e69985588c1e8f41340c14f52d84eb1b'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:11 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=mge0r50gtlmk8ap7qbhdfbab51; expires=Fri, 30-Jun-2017 + 13:49:11 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + sales_order.info + + + + + + + + 145000008 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['344'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + statenewstatuspendingcoupon_codeprotect_code3b4248shipping_descriptionFree + Shipping - Freeis_virtual0store_id1customer_idbase_discount_amount0.0000base_discount_canceledbase_discount_invoicedbase_discount_refundedbase_grand_total243.5600base_shipping_amount0.0000base_shipping_canceledbase_shipping_invoicedbase_shipping_refundedbase_shipping_tax_amount0.0000base_shipping_tax_refundedbase_subtotal225.0000base_subtotal_canceledbase_subtotal_invoicedbase_subtotal_refundedbase_tax_amount18.5600base_tax_canceledbase_tax_invoicedbase_tax_refundedbase_to_global_rate1.0000base_to_order_rate1.0000base_total_canceledbase_total_invoicedbase_total_invoiced_costbase_total_offline_refundedbase_total_online_refundedbase_total_paidbase_total_qty_orderedbase_total_refundeddiscount_amount0.0000discount_canceleddiscount_invoiceddiscount_refundedgrand_total243.5600shipping_amount0.0000shipping_canceledshipping_invoicedshipping_refundedshipping_tax_amount0.0000shipping_tax_refundedstore_to_base_rate1.0000store_to_order_rate1.0000subtotal225.0000subtotal_canceledsubtotal_invoicedsubtotal_refundedtax_amount18.5600tax_canceledtax_invoicedtax_refundedtotal_canceledtotal_invoicedtotal_offline_refundedtotal_online_refundedtotal_paidtotal_qty_ordered1.0000total_refundedcan_ship_partiallycan_ship_partially_itemcustomer_is_guest1customer_note_notify1billing_address_id384customer_group_id0edit_incrementemail_sentforced_shipment_with_invoicepayment_auth_expirationquote_address_idquote_id682shipping_address_id385adjustment_negativeadjustment_positivebase_adjustment_negativebase_adjustment_positivebase_shipping_discount_amount0.0000base_subtotal_incl_tax243.5600base_total_duepayment_authorization_amountshipping_discount_amount0.0000subtotal_incl_tax243.5600total_dueweight1.0000customer_dobincrement_id145000008applied_rule_idsbase_currency_codeEURcustomer_emailbill@example.comcustomer_firstnameBillcustomer_lastnameBoqueycustomer_middlenamecustomer_prefixcustomer_suffixcustomer_taxvatdiscount_descriptionext_customer_idext_order_idglobal_currency_codeEURhold_before_statehold_before_statusorder_currency_codeEURoriginal_increment_idrelation_child_idrelation_child_real_idrelation_parent_idrelation_parent_real_idremote_ip172.23.0.1shipping_methodfreeshipping_freeshippingstore_currency_codeEURstore_nameMain + Website + + Madison Island + + Englishx_forwarded_forcustomer_notecreated_at2017-06-30 + 12:48:31updated_at2017-06-30 + 12:48:31total_item_count1customer_genderhidden_tax_amount0.0000base_hidden_tax_amount0.0000shipping_hidden_tax_amount0.0000base_shipping_hidden_tax_amnt0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedshipping_incl_tax0.0000base_shipping_incl_tax0.0000coupon_rule_namepaypal_ipn_customer_notified0gift_message_idbase_customer_balance_amountcustomer_balance_amountbase_customer_balance_invoicedcustomer_balance_invoicedbase_customer_balance_refundedcustomer_balance_refundedbs_customer_bal_total_refundedcustomer_bal_total_refundedgift_cardsbase_gift_cards_amountgift_cards_amountbase_gift_cards_invoicedgift_cards_invoicedbase_gift_cards_refundedgift_cards_refundedgw_idgw_allow_gift_receiptgw_add_cardgw_base_pricegw_pricegw_items_base_pricegw_items_pricegw_card_base_pricegw_card_pricegw_base_tax_amountgw_tax_amountgw_items_base_tax_amountgw_items_tax_amountgw_card_base_tax_amountgw_card_tax_amountgw_base_price_invoicedgw_price_invoicedgw_items_base_price_invoicedgw_items_price_invoicedgw_card_base_price_invoicedgw_card_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_items_base_tax_invoicedgw_items_tax_invoicedgw_card_base_tax_invoicedgw_card_tax_invoicedgw_base_price_refundedgw_price_refundedgw_items_base_price_refundedgw_items_price_refundedgw_card_base_price_refundedgw_card_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedgw_items_base_tax_refundedgw_items_tax_refundedgw_card_base_tax_refundedgw_card_tax_refundedreward_points_balancebase_reward_currency_amountreward_currency_amountbase_rwrd_crrncy_amt_invoicedrwrd_currency_amount_invoicedbase_rwrd_crrncy_amnt_refndedrwrd_crrncy_amnt_refundedreward_points_balance_refundreward_points_balance_refundedreward_salesrule_pointsimported0payment_authorization_expirationforced_do_shipment_with_invoicebase_shipping_hidden_tax_amount0.0000order_id197shipping_addressparent_id197customer_address_idquote_address_idregion_id49customer_idfaxregionOregonpostcode11111lastnameBoqueystreetHerecityThereemailbill@example.comtelephone000000000000country_idUSfirstnameBilladdress_typeshippingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id385billing_addressparent_id197customer_address_idquote_address_idregion_id49customer_idfaxregionOregonpostcode11111lastnameBoqueystreetHerecityThereemailbill@example.comtelephone000000000000country_idUSfirstnameBilladdress_typebillingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id384itemsitem_id598order_id197parent_item_idquote_item_id2477store_id1created_at2017-06-30 + 12:48:31updated_at2017-06-30 + 12:48:31product_id338product_typesimpleproduct_optionsa:1:{s:15:"info_buyRequest";a:5:{s:4:"uenc";s:100:"aHR0cDovL21hZ2VudG8vYWNjZXNzb3JpZXMvZXlld2Vhci9qYWNraWUtby1yb3VuZC1zdW5nbGFzc2VzLmh0bWw_X19fU0lEPVU,";s:7:"product";s:3:"338";s:8:"form_key";s:16:"HK2vdBQKs7qgIM8F";s:15:"related_product";s:0:"";s:3:"qty";s:1:"1";}}weight1.0000is_virtual0skuace001nameJackie + O Round Sunglassesdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice225.0000base_price225.0000original_price225.0000base_original_price225.0000tax_percent8.2500tax_amount18.5600base_tax_amount18.5600tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total225.0000base_row_total225.0000row_invoiced0.0000base_row_invoiced0.0000row_weight1.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax243.5600base_price_incl_tax243.5600row_total_incl_tax243.5600base_row_total_incl_tax243.5600hidden_tax_amount0.0000base_hidden_tax_amount0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000paymentparent_id197base_shipping_capturedshipping_capturedamount_refundedbase_amount_paidamount_canceledbase_amount_authorizedbase_amount_paid_onlinebase_amount_refunded_onlinebase_shipping_amount0.0000shipping_amount0.0000amount_paidamount_authorizedbase_amount_ordered243.5600base_shipping_refundedshipping_refundedbase_amount_refundedamount_ordered243.5600base_amount_canceledquote_payment_idadditional_datacc_exp_month0cc_ss_start_year0echeck_bank_namemethodcashondeliverycc_debug_request_bodycc_secure_verifyprotection_eligibilitycc_approvalcc_last4cc_status_descriptionecheck_typecc_debug_response_serializedcc_ss_start_month0echeck_account_typelast_trans_idcc_cid_statuscc_ownercc_typepo_numbercc_exp_year0cc_statusecheck_routing_numberaccount_statusanet_trans_methodcc_debug_response_bodycc_ss_issueecheck_account_namecc_avs_statuscc_number_enccc_trans_idpaybox_request_numberaddress_statusadditional_informationcybersource_tokenflo2cash_account_idideal_issuer_idideal_issuer_titleideal_transaction_checkedpaybox_question_numberpayment_id196status_historyparent_id197is_customer_notified1is_visible_on_front0commentstatuspendingcreated_at2017-06-30 + 12:48:31entity_nameorderstore_id1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:11 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=1qa5q3eltadrf02jkbkcj4bun6; expires=Fri, 30-Jun-2017 + 13:49:11 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + ol_customer_groups.info + + + + + + + + 0 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['343'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_group_id0customer_group_codeNOT + LOGGED INtax_class_id10'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:12 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=jbprolv8f615bu6v2o3cack096; expires=Fri, 30-Jun-2017 + 13:49:12 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + ol_catalog_product.info + + + + + + + + 338 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id338skuace001set11typesimplecategories1828websites1type_idsimplenameJackie + O Round SunglassesdescriptionAcetate + frame. Polycarbonate lenses.short_descriptionThese + distinct, feminine frames balance a classic Jackie-O styling with a modern + look. weight1.0000news_from_dateold_idnews_to_datestatus1url_keyjackie-o-round-sunglassesvisibility4country_of_manufactureurl_pathjackie-o-round-sunglasses.htmlcategory_ids1828required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:17+01:00updated_at2013-03-20 + 16:45:30price295.0000group_pricespecial_price225.0000special_from_date2013-03-05 + 00:00:00minimal_pricespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecolor28gender94material130luggage_sizeluggage_travel_stylebag_luggage_typeaccessories_sizeaccessories_typeEyewearluggage_style'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:12 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=llk072a2se7euqh8lpgt82lfc3; expires=Fri, 30-Jun-2017 + 13:49:12 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + catalog_category.info + + + + + + + + 18 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id18is_active1position1level3parent_id6increment_idcreated_at2013-01-25T12:04:27+01:00updated_at2013-03-05 + 07:16:27nameEyewearurl_keyeyewearthumbnaildescriptionimageplp-eye.jpgmeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/6/18all_children18path_in_storechildrenurl_pathaccessories/eyewear.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:12 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ea46lanl44ntp1cjo51cc3u3q2; expires=Fri, 30-Jun-2017 + 13:49:12 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + catalog_category.info + + + + + + + + 6 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id6is_active1position4level2parent_id2increment_idcreated_at2013-01-25T11:47:41+01:00updated_at2013-12-25 + 12:28:34nameAccessoriesurl_keyaccessoriesthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/6all_children6,18,19,20,21path_in_storechildren18,19,20,21url_pathaccessories.htmlchildren_count4display_modePAGElanding_page17is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutone_columncustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:13 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=mb37qc7gerd3scsnnjcdcbnle5; expires=Fri, 30-Jun-2017 + 13:49:12 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:13 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=9gkvmao14g5l1nq42ofkit8am2; expires=Fri, 30-Jun-2017 + 13:49:13 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:13 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=cs99s2v9kvc78ino9l3ge5u9j6; expires=Fri, 30-Jun-2017 + 13:49:13 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + catalog_category.info + + + + + + + + 28 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id28is_active1position3level3parent_id8increment_idcreated_at2013-01-25T12:11:31+01:00updated_at2013-05-06 + 04:17:24nameAccessoriesurl_keyaccessoriesthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/8/28all_children28path_in_storechildrenurl_pathsale/accessories.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:13 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=4h9h06jpdsa3oqkrbdrpptmkj6; expires=Fri, 30-Jun-2017 + 13:49:13 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + catalog_category.info + + + + + + + + 8 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id8is_active1position6level2parent_id2increment_idcreated_at2013-01-25T11:49:50+01:00updated_at2013-05-15 + 22:49:33nameSaleurl_keysalethumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/8all_children8,26,27,28,29path_in_storechildren26,27,28,29url_pathsale.htmlchildren_count4display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update<reference> + + <remove name="right.poll"/> + + </reference>'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:14 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=tnd2934e94138801ohpktogjc3; expires=Fri, 30-Jun-2017 + 13:49:13 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + product_media.list + + + + + + + + 338 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/a/c/ace001_1.jpglabelposition1exclude1urlhttp://magento/media/catalog/product/a/c/ace001_1.jpgtypesimagesmall_imagethumbnail'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:14 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=jab7ra8pas4q6go52993eilgj4; expires=Fri, 30-Jun-2017 + 13:49:14 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + e69985588c1e8f41340c14f52d84eb1b + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:49:15 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=1nlaqg5enbpbdn3tt558j5jb01; expires=Fri, 30-Jun-2017 + 13:49:15 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/import_sale_order_145000009.yaml b/connector_magento/tests/fixtures/cassettes/import_sale_order_145000009.yaml new file mode 100644 index 000000000..6985e600c --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/import_sale_order_145000009.yaml @@ -0,0 +1,994 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + f1331264594c776ada72f62058934e7e'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:57 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=n7qphnme2ruesn9a578vk0sn44; expires=Fri, 30-Jun-2017 + 16:28:57 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + sales_order.info + + + + + + + + 145000009 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['344'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + statenewstatuspendingcoupon_codeprotect_code8abdfbshipping_descriptionUnited + Parcel Service - Groundis_virtual0store_id1customer_id135base_discount_amount0.0000base_discount_canceledbase_discount_invoicedbase_discount_refundedbase_grand_total910.1500base_shipping_amount0.0000base_shipping_canceledbase_shipping_invoicedbase_shipping_refundedbase_shipping_tax_amount0.0000base_shipping_tax_refundedbase_subtotal835.0000base_subtotal_canceledbase_subtotal_invoicedbase_subtotal_refundedbase_tax_amount75.1500base_tax_canceledbase_tax_invoicedbase_tax_refundedbase_to_global_rate1.0000base_to_order_rate1.0000base_total_canceledbase_total_invoicedbase_total_invoiced_costbase_total_offline_refundedbase_total_online_refundedbase_total_paidbase_total_qty_orderedbase_total_refundeddiscount_amount0.0000discount_canceleddiscount_invoiceddiscount_refundedgrand_total910.1500shipping_amount0.0000shipping_canceledshipping_invoicedshipping_refundedshipping_tax_amount0.0000shipping_tax_refundedstore_to_base_rate1.0000store_to_order_rate1.0000subtotal835.0000subtotal_canceledsubtotal_invoicedsubtotal_refundedtax_amount75.1500tax_canceledtax_invoicedtax_refundedtotal_canceledtotal_invoicedtotal_offline_refundedtotal_online_refundedtotal_paidtotal_qty_ordered2.0000total_refundedcan_ship_partiallycan_ship_partially_itemcustomer_is_guest0customer_note_notify0billing_address_id386customer_group_id1edit_incrementemail_sentforced_shipment_with_invoicepayment_auth_expirationquote_address_idquote_id683shipping_address_id387adjustment_negativeadjustment_positivebase_adjustment_negativebase_adjustment_positivebase_shipping_discount_amount0.0000base_subtotal_incl_tax910.1500base_total_duepayment_authorization_amountshipping_discount_amount0.0000subtotal_incl_tax910.1500total_dueweight2.0000customer_dobincrement_id145000009applied_rule_ids29base_currency_codeEURcustomer_emailjohndoe@magento.comcustomer_firstnameJohncustomer_lastnameDoecustomer_middlenamecustomer_prefixcustomer_suffixcustomer_taxvatdiscount_descriptionext_customer_idext_order_idglobal_currency_codeEURhold_before_statehold_before_statusorder_currency_codeEURoriginal_increment_idrelation_child_idrelation_child_real_idrelation_parent_idrelation_parent_real_idremote_ipshipping_methodups_GNDstore_currency_codeEURstore_nameMain + Website + + Madison Island + + Englishx_forwarded_forcustomer_notecreated_at2017-06-30 + 15:28:26updated_at2017-06-30 + 15:28:26total_item_count2customer_gender1hidden_tax_amount0.0000base_hidden_tax_amount0.0000shipping_hidden_tax_amount0.0000base_shipping_hidden_tax_amnt0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedshipping_incl_tax0.0000base_shipping_incl_tax0.0000coupon_rule_namepaypal_ipn_customer_notified0gift_message_idbase_customer_balance_amountcustomer_balance_amountbase_customer_balance_invoicedcustomer_balance_invoicedbase_customer_balance_refundedcustomer_balance_refundedbs_customer_bal_total_refundedcustomer_bal_total_refundedgift_cardsbase_gift_cards_amountgift_cards_amountbase_gift_cards_invoicedgift_cards_invoicedbase_gift_cards_refundedgift_cards_refundedgw_idgw_allow_gift_receiptgw_add_cardgw_base_pricegw_pricegw_items_base_pricegw_items_pricegw_card_base_pricegw_card_pricegw_base_tax_amountgw_tax_amountgw_items_base_tax_amountgw_items_tax_amountgw_card_base_tax_amountgw_card_tax_amountgw_base_price_invoicedgw_price_invoicedgw_items_base_price_invoicedgw_items_price_invoicedgw_card_base_price_invoicedgw_card_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_items_base_tax_invoicedgw_items_tax_invoicedgw_card_base_tax_invoicedgw_card_tax_invoicedgw_base_price_refundedgw_price_refundedgw_items_base_price_refundedgw_items_price_refundedgw_card_base_price_refundedgw_card_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedgw_items_base_tax_refundedgw_items_tax_refundedgw_card_base_tax_refundedgw_card_tax_refundedreward_points_balancebase_reward_currency_amountreward_currency_amountbase_rwrd_crrncy_amt_invoicedrwrd_currency_amount_invoicedbase_rwrd_crrncy_amnt_refndedrwrd_crrncy_amnt_refundedreward_points_balance_refundreward_points_balance_refundedreward_salesrule_pointsimported0payment_authorization_expirationforced_do_shipment_with_invoicebase_shipping_hidden_tax_amount0.0000order_id198shipping_addressparent_id198customer_address_id91quote_address_idregion_id12customer_id135faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjohndoe@example.comtelephone888-888-8888country_idUSfirstnameJohnaddress_typeshippingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id387billing_addressparent_id198customer_address_id91quote_address_idregion_id12customer_id135faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjohndoe@example.comtelephone888-888-8888country_idUSfirstnameJohnaddress_typebillingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id386itemsitem_id599order_id198parent_item_idquote_item_id2478store_id1created_at2017-06-30 + 15:28:26updated_at2017-06-30 + 15:28:26product_id393product_typesimpleproduct_optionsa:1:{s:15:"info_buyRequest";a:5:{s:4:"uenc";s:64:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9lbGVjdHJvbmljcy5odG1s";s:7:"product";s:3:"393";s:8:"form_key";s:16:"18owwYZqmMopo5xy";s:3:"qty";s:6:"1.0000";s:7:"options";a:0:{}}}weight1.0000is_virtual0skuhde003nameMadison + RX3400descriptionapplied_rule_ids29additional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice715.0000base_price715.0000original_price715.0000base_original_price715.0000tax_percent9.0000tax_amount64.3500base_tax_amount64.3500tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total715.0000base_row_total715.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax779.3500base_price_incl_tax779.3500row_total_incl_tax779.3500base_row_total_incl_tax779.3500hidden_tax_amount0.0000base_hidden_tax_amount0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000item_id600order_id198parent_item_idquote_item_id2479store_id1created_at2017-06-30 + 15:28:26updated_at2017-06-30 + 15:28:26product_id396product_typesimpleproduct_optionsa:1:{s:15:"info_buyRequest";a:5:{s:4:"uenc";s:64:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9lbGVjdHJvbmljcy5odG1s";s:7:"product";s:3:"396";s:8:"form_key";s:16:"18owwYZqmMopo5xy";s:3:"qty";s:6:"1.0000";s:7:"options";a:0:{}}}weight1.0000is_virtual0skuhde006nameLarge + Camera Bagdescriptionapplied_rule_ids29additional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice120.0000base_price120.0000original_price120.0000base_original_price120.0000tax_percent9.0000tax_amount10.8000base_tax_amount10.8000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total120.0000base_row_total120.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax130.8000base_price_incl_tax130.8000row_total_incl_tax130.8000base_row_total_incl_tax130.8000hidden_tax_amount0.0000base_hidden_tax_amount0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000paymentparent_id198base_shipping_capturedshipping_capturedamount_refundedbase_amount_paidamount_canceledbase_amount_authorizedbase_amount_paid_onlinebase_amount_refunded_onlinebase_shipping_amount0.0000shipping_amount0.0000amount_paidamount_authorizedbase_amount_ordered910.1500base_shipping_refundedshipping_refundedbase_amount_refundedamount_ordered910.1500base_amount_canceledquote_payment_idadditional_datacc_exp_month0cc_ss_start_year0echeck_bank_namemethodcashondeliverycc_debug_request_bodycc_secure_verifyprotection_eligibilitycc_approvalcc_last4cc_status_descriptionecheck_typecc_debug_response_serializedcc_ss_start_month0echeck_account_typelast_trans_idcc_cid_statuscc_ownercc_typepo_numbercc_exp_year0cc_statusecheck_routing_numberaccount_statusanet_trans_methodcc_debug_response_bodycc_ss_issueecheck_account_namecc_avs_statuscc_number_enccc_trans_idpaybox_request_numberaddress_statusadditional_informationcybersource_tokenflo2cash_account_idideal_issuer_idideal_issuer_titleideal_transaction_checkedpaybox_question_numberpayment_id197status_historyparent_id198is_customer_notified0is_visible_on_front0commentstatuspendingcreated_at2017-06-30 + 15:28:26entity_nameorderstore_id1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:57 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=v72c4f82ajodm49hq3g45802n5; expires=Fri, 30-Jun-2017 + 16:28:57 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + customer.info + + + + + + + + 135 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['335'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id135created_at2013-05-16T06:16:11+02:00updated_at2017-06-30 + 15:28:26increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billing91default_shipping91disable_auto_group_change0dobemailjohndoe@example.comfirstnameJohngender1group_id1lastnameDoemiddlenamepassword_hash60d0b6777081273c90d9dcf6342b18d511d539f5f119b56a364b2b0ff6dd29f1:O9hr8Lafe1STOCnJkp2ZHjFMrfM9plGnprefixreward_update_notification1reward_warning_notification1rp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:57 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=qsn7cplojtcausqmm3ce2vkk86; expires=Fri, 30-Jun-2017 + 16:28:57 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + ol_customer_groups.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['343'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_group_id1customer_group_codeGeneraltax_class_id3'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:57 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ns904633i9siqoriip0q05jmr5; expires=Fri, 30-Jun-2017 + 16:28:57 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + customer_address.list + + + + + + + + + + + + customer_id + + + + + + eq + + 135 + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['496'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id91created_at2013-05-16 + 00:16:11updated_at2017-06-30 + 15:28:26cityCulver + Citycountry_idUSfirstnameJohnlastnameDoepostcode90232regionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200telephone888-888-8888is_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=9akab9hsrq3kqetb38gfsmb6c6; expires=Fri, 30-Jun-2017 + 16:28:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + customer_address.info + + + + + + + + 91 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id91created_at2013-05-16T02:16:11+02:00updated_at2017-06-30 + 15:28:26increment_idcityCulver + Citycompanycountry_idUSfaxfirstnameJohnlastnameDoemiddlenamepostcode90232prefixregionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200suffixtelephone888-888-8888vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=hnvtb6461qn1nola2a4n5o7jb5; expires=Fri, 30-Jun-2017 + 16:28:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + ol_catalog_product.info + + + + + + + + 393 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id393skuhde003set14typesimplecategories924websites1type_idsimplenameMadison + RX3400description18-55mm + zoom lens. 3.0" LCD display with image editing features. Built in flash + with flash modes and pop up. SD/SDXC slot. Full 1080p HD video. Rechargable + Lithium-Ion battery. File formats: NEF (RAW), JPEG, MOV. 5" x 3" + x 4", 15oz.short_descriptionFor + budding photo connoisseurs.weight1.0000news_from_dateold_idnews_to_datestatus1url_keymadison-rx3400visibility4country_of_manufactureurl_pathmadison-rx3400.htmlcategory_ids924required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:20+01:00updated_at2013-05-30 + 00:02:17price715.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled1msrp_display_actual_price_type2msrp815.0000tax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecamera_type172color20camera_megapixels180electronic_type218'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=pcvb3fb07rkf09ummp01o4c8m3; expires=Fri, 30-Jun-2017 + 16:28:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + catalog_category.info + + + + + + + + 9 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id9is_active1position7level2parent_id2increment_idcreated_at2013-01-25T11:50:47+01:00updated_at2013-05-10 + 17:17:59nameVIPurl_keyvipthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/9all_children9path_in_storechildrenurl_pathvip.htmlchildren_count0display_modePRODUCTS_AND_PAGElanding_page31is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=cpccdt7cofmkrjjnbli5vub9u7; expires=Fri, 30-Jun-2017 + 16:28:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=tf9gr1frscg23rtcmk3u7lbt47; expires=Fri, 30-Jun-2017 + 16:28:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=qj4jg4jb2j0nv6kt7hjfqhc2f5; expires=Fri, 30-Jun-2017 + 16:28:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + catalog_category.info + + + + + + + + 24 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id24is_active1position3level3parent_id7increment_idcreated_at2013-01-25T12:08:54+01:00updated_at2013-03-08 + 19:27:16nameElectronicsurl_keyelectronicsthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7/24all_children24path_in_storechildrenurl_pathhome-decor/electronics.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=vmtnukteni1hbk64a7opj1b7c1; expires=Fri, 30-Jun-2017 + 16:28:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + catalog_category.info + + + + + + + + 7 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id7is_active1position5level2parent_id2increment_idcreated_at2013-01-25T11:49:05+01:00updated_at2013-05-08 + 05:26:34nameHome + & Decorurl_keyhome-decorthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7all_children7,22,23,24,25path_in_storechildren22,23,24,25url_pathhome-decor.htmlchildren_count4display_modePAGElanding_page21is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutone_columncustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:28:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=j3l5ot7gkthqpf6nhvlag69ps7; expires=Fri, 30-Jun-2017 + 16:28:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + product_media.list + + + + + + + + 393 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hde003a_2.jpglabelposition2exclude0urlhttp://magento/media/catalog/product/h/d/hde003a_2.jpgtypesimagesmall_imagethumbnailfile/h/d/hde003b_.jpglabelposition4exclude0urlhttp://magento/media/catalog/product/h/d/hde003b_.jpgtypes'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:29:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=6mtaka9lpvbre8p59ohuvcoev6; expires=Fri, 30-Jun-2017 + 16:29:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + ol_catalog_product.info + + + + + + + + 396 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id396skuhde006set14typesimplecategories24websites1type_idsimplenameLarge + Camera BagdescriptionFlap + closure. Microfiber. 8.5" x 5" x 6". Domestic.short_descriptionKeep + your camera safe and secure in our Large Camera case.weight1.0000news_from_dateold_idnews_to_datestatus1url_keylarge-camera-bagvisibility4country_of_manufactureurl_pathlarge-camera-bag.htmlcategory_ids24required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:20+01:00updated_at2013-05-16 + 20:15:59price120.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecamera_typecolor17camera_megapixelselectronic_type219'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:29:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=duthp7uiidnk9dv8dsokp7pq62; expires=Fri, 30-Jun-2017 + 16:29:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1331264594c776ada72f62058934e7e + + + + + + product_media.list + + + + + + + + 396 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hde006t.jpglabelposition4exclude0urlhttp://magento/media/catalog/product/h/d/hde006t.jpgtypesimagesmall_imagethumbnailfile/h/d/hde006b_1.jpglabelposition5exclude0urlhttp://magento/media/catalog/product/h/d/hde006b_1.jpgtypesfile/h/d/hde006c.jpglabelposition6exclude0urlhttp://magento/media/catalog/product/h/d/hde006c.jpgtypes'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:29:01 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=cpd004d6acqocmk7ic4jj0jru6; expires=Fri, 30-Jun-2017 + 16:29:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + f1331264594c776ada72f62058934e7e + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:29:01 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=i2tcg4rpkocbfredeqc1f0vac5; expires=Fri, 30-Jun-2017 + 16:29:01 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/import_sale_order_edited_1.yaml b/connector_magento/tests/fixtures/cassettes/import_sale_order_edited_1.yaml new file mode 100644 index 000000000..f42b4baca --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/import_sale_order_edited_1.yaml @@ -0,0 +1,994 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 105c77d1f2279b16b4be052d1cd57552'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:39 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=1o9qhbt7bf8323r9fbi67i90s3; expires=Fri, 30-Jun-2017 + 13:34:39 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + sales_order.info + + + + + + + + 100000200 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['344'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + statenewstatuspendingcoupon_codeprotect_code4b2dd1shipping_descriptionUnited + Parcel Service - Groundis_virtual0store_id1customer_id135base_discount_amount-10.0000base_discount_canceledbase_discount_invoicedbase_discount_refundedbase_grand_total599.2500base_shipping_amount0.0000base_shipping_canceledbase_shipping_invoicedbase_shipping_refundedbase_shipping_tax_amount0.0000base_shipping_tax_refundedbase_subtotal835.0000base_subtotal_canceledbase_subtotal_invoicedbase_subtotal_refundedbase_tax_amount74.2500base_tax_canceledbase_tax_invoicedbase_tax_refundedbase_to_global_rate1.0000base_to_order_rate1.0000base_total_canceledbase_total_invoicedbase_total_invoiced_costbase_total_offline_refundedbase_total_online_refundedbase_total_paidbase_total_qty_orderedbase_total_refundeddiscount_amount-10.0000discount_canceleddiscount_invoiceddiscount_refundedgrand_total599.2500shipping_amount0.0000shipping_canceledshipping_invoicedshipping_refundedshipping_tax_amount0.0000shipping_tax_refundedstore_to_base_rate1.0000store_to_order_rate1.0000subtotal835.0000subtotal_canceledsubtotal_invoicedsubtotal_refundedtax_amount74.2500tax_canceledtax_invoicedtax_refundedtotal_canceledtotal_invoicedtotal_offline_refundedtotal_online_refundedtotal_paidtotal_qty_ordered2.0000total_refundedcan_ship_partiallycan_ship_partially_itemcustomer_is_guest0customer_note_notify1billing_address_id353customer_group_id1edit_incrementemail_sent1forced_shipment_with_invoicepayment_auth_expirationquote_address_idquote_id577shipping_address_id354adjustment_negativeadjustment_positivebase_adjustment_negativebase_adjustment_positivebase_shipping_discount_amount0.0000base_subtotal_incl_tax910.1500base_total_duepayment_authorization_amountshipping_discount_amount0.0000subtotal_incl_tax910.1500total_dueweight2.0000customer_dobincrement_id100000200applied_rule_ids11,29base_currency_codeUSDcustomer_emailjohndoe@magento.comcustomer_firstnameJohncustomer_lastnameDoecustomer_middlenamecustomer_prefixcustomer_suffixcustomer_taxvatdiscount_descriptionext_customer_idext_order_idglobal_currency_codeUSDhold_before_statehold_before_statusorder_currency_codeUSDoriginal_increment_idrelation_child_idrelation_child_real_idrelation_parent_idrelation_parent_real_idremote_ip74.68.114.135shipping_methodups_GNDstore_currency_codeUSDstore_nameMain + Website + + Madison Island + + Englishx_forwarded_forcustomer_notecreated_at2013-05-25 + 01:58:37updated_at2013-05-25 + 01:58:38total_item_count2customer_gender1hidden_tax_amount0.0000base_hidden_tax_amount0.0000shipping_hidden_tax_amount0.0000base_shipping_hidden_tax_amnt0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedshipping_incl_tax0.0000base_shipping_incl_tax0.0000coupon_rule_namepaypal_ipn_customer_notified0gift_message_idbase_customer_balance_amount0.0000customer_balance_amount0.0000base_customer_balance_invoicedcustomer_balance_invoicedbase_customer_balance_refundedcustomer_balance_refundedbs_customer_bal_total_refundedcustomer_bal_total_refundedgift_cardsa:1:{i:0;a:5:{s:1:"i";s:2:"58";s:1:"c";s:12:"20IRHQMGHAB6";s:1:"a";d:300;s:2:"ba";d:300;s:10:"authorized";d:300;}}base_gift_cards_amount300.0000gift_cards_amount300.0000base_gift_cards_invoicedgift_cards_invoicedbase_gift_cards_refundedgift_cards_refundedgw_idgw_allow_gift_receipt0gw_add_card0gw_base_price0.0000gw_price0.0000gw_items_base_price0.0000gw_items_price0.0000gw_card_base_price0.0000gw_card_price0.0000gw_base_tax_amount0.0000gw_tax_amount0.0000gw_items_base_tax_amount0.0000gw_items_tax_amount0.0000gw_card_base_tax_amount0.0000gw_card_tax_amount0.0000gw_base_price_invoicedgw_price_invoicedgw_items_base_price_invoicedgw_items_price_invoicedgw_card_base_price_invoicedgw_card_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_items_base_tax_invoicedgw_items_tax_invoicedgw_card_base_tax_invoicedgw_card_tax_invoicedgw_base_price_refundedgw_price_refundedgw_items_base_price_refundedgw_items_price_refundedgw_card_base_price_refundedgw_card_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedgw_items_base_tax_refundedgw_items_tax_refundedgw_card_base_tax_refundedgw_card_tax_refundedreward_points_balance0base_reward_currency_amount0.0000reward_currency_amount0.0000base_rwrd_crrncy_amt_invoicedrwrd_currency_amount_invoicedbase_rwrd_crrncy_amnt_refndedrwrd_crrncy_amnt_refundedreward_points_balance_refundreward_points_balance_refundedreward_salesrule_pointsimported0payment_authorization_expirationforced_do_shipment_with_invoicebase_shipping_hidden_tax_amount0.0000order_id180shipping_addressparent_id180customer_address_id91quote_address_idregion_id12customer_id135faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjohndoe@magento.comtelephone888-888-8888country_idUSfirstnameJohnaddress_typeshippingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id354billing_addressparent_id180customer_address_id91quote_address_idregion_id12customer_id135faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjohndoe@magento.comtelephone888-888-8888country_idUSfirstnameJohnaddress_typebillingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id353itemsitem_id541order_id180parent_item_idquote_item_id2315store_id1created_at2013-05-25 + 01:58:37updated_at2013-05-25 + 01:58:37product_id393product_typesimpleproduct_optionsa:5:{s:15:"info_buyRequest";a:4:{s:4:"uenc";s:64:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9lbGVjdHJvbmljcy5odG1s";s:7:"product";s:3:"393";s:8:"form_key";s:16:"18owwYZqmMopo5xy";s:3:"qty";i:1;}s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuhde003nameMadison + RX3400descriptionapplied_rule_ids11,29additional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice715.0000base_price715.0000original_price715.0000base_original_price715.0000tax_percent9.0000tax_amount63.5800base_tax_amount63.5800tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount8.5600base_discount_amount8.5600discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total715.0000base_row_total715.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax779.3500base_price_incl_tax779.3500row_total_incl_tax779.3500base_row_total_incl_tax779.3500hidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000item_id542order_id180parent_item_idquote_item_id2316store_id1created_at2013-05-25 + 01:58:37updated_at2013-05-25 + 01:58:37product_id396product_typesimpleproduct_optionsa:5:{s:15:"info_buyRequest";a:4:{s:4:"uenc";s:64:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9lbGVjdHJvbmljcy5odG1s";s:7:"product";s:3:"396";s:8:"form_key";s:16:"18owwYZqmMopo5xy";s:3:"qty";i:1;}s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuhde006nameLarge + Camera Bagdescriptionapplied_rule_ids11,29additional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice120.0000base_price120.0000original_price120.0000base_original_price120.0000tax_percent9.0000tax_amount10.6700base_tax_amount10.6700tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount1.4400base_discount_amount1.4400discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total120.0000base_row_total120.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax130.8000base_price_incl_tax130.8000row_total_incl_tax130.8000base_row_total_incl_tax130.8000hidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000paymentparent_id180base_shipping_capturedshipping_capturedamount_refundedbase_amount_paidamount_canceledbase_amount_authorizedbase_amount_paid_onlinebase_amount_refunded_onlinebase_shipping_amount0.0000shipping_amount0.0000amount_paidamount_authorizedbase_amount_ordered599.2500base_shipping_refundedshipping_refundedbase_amount_refundedamount_ordered599.2500base_amount_canceledquote_payment_idadditional_datacc_exp_month0cc_ss_start_year0echeck_bank_namemethodcheckmocc_debug_request_bodycc_secure_verifyprotection_eligibilitycc_approvalcc_last4cc_status_descriptionecheck_typecc_debug_response_serializedcc_ss_start_month0echeck_account_typelast_trans_idcc_cid_statuscc_ownercc_typepo_numbercc_exp_year0cc_statusecheck_routing_numberaccount_statusanet_trans_methodcc_debug_response_bodycc_ss_issueecheck_account_namecc_avs_statuscc_number_enccc_trans_idpaybox_request_numberaddress_statusadditional_informationcybersource_tokenflo2cash_account_idideal_issuer_idideal_issuer_titleideal_transaction_checkedpaybox_question_numberpayment_id180status_historyparent_id180is_customer_notified1is_visible_on_front0commentstatuspendingcreated_at2013-05-25 + 01:58:38entity_nameorderstore_id1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:39 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=hsrd00k9qtufdbd2ghrkt62ag2; expires=Fri, 30-Jun-2017 + 13:34:39 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + customer.info + + + + + + + + 135 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['335'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id135created_at2013-05-16T06:16:11+02:00updated_at2013-06-24 + 14:20:46increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billing91default_shipping91disable_auto_group_change0dobemailjohndoe@example.comfirstnameJohngender1group_id1lastnameDoemiddlenamepassword_hash60d0b6777081273c90d9dcf6342b18d511d539f5f119b56a364b2b0ff6dd29f1:O9hr8Lafe1STOCnJkp2ZHjFMrfM9plGnprefixreward_update_notification1reward_warning_notification1rp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:39 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=2163eccng2uerbrd47v32q24p1; expires=Fri, 30-Jun-2017 + 13:34:39 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + ol_customer_groups.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['343'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_group_id1customer_group_codeGeneraltax_class_id3'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:39 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=v7at0et1f45tiphguftoj9fus6; expires=Fri, 30-Jun-2017 + 13:34:39 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + customer_address.list + + + + + + + + + + + + customer_id + + + + + + eq + + 135 + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['496'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id91created_at2013-05-16 + 04:16:11updated_at2013-06-24 + 14:20:46cityCulver + Citycountry_idUSfirstnameJohnlastnameDoepostcode90232regionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200telephone888-888-8888is_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:39 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ehfnatq6erkbrqp6jh93d080a2; expires=Fri, 30-Jun-2017 + 13:34:39 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + customer_address.info + + + + + + + + 91 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id91created_at2013-05-16T06:16:11+02:00updated_at2013-06-24 + 14:20:46increment_idcityCulver + Citycompanycountry_idUSfaxfirstnameJohnlastnameDoemiddlenamepostcode90232prefixregionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200suffixtelephone888-888-8888vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:40 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=uo8dcfa1p1por3tph0vlme9ht2; expires=Fri, 30-Jun-2017 + 13:34:39 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + ol_catalog_product.info + + + + + + + + 393 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id393skuhde003set14typesimplecategories924websites1type_idsimplenameMadison + RX3400description18-55mm + zoom lens. 3.0" LCD display with image editing features. Built in flash + with flash modes and pop up. SD/SDXC slot. Full 1080p HD video. Rechargable + Lithium-Ion battery. File formats: NEF (RAW), JPEG, MOV. 5" x 3" + x 4", 15oz.short_descriptionFor + budding photo connoisseurs.weight1.0000news_from_dateold_idnews_to_datestatus1url_keymadison-rx3400visibility4country_of_manufactureurl_pathmadison-rx3400.htmlcategory_ids924required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:20+01:00updated_at2013-05-30 + 00:02:17price715.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled1msrp_display_actual_price_type2msrp815.0000tax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecamera_type172color20camera_megapixels180electronic_type218'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:40 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=otm2usl5sdntp9qqudhv9lo3a7; expires=Fri, 30-Jun-2017 + 13:34:40 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + catalog_category.info + + + + + + + + 9 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id9is_active1position7level2parent_id2increment_idcreated_at2013-01-25T11:50:47+01:00updated_at2013-05-10 + 17:17:59nameVIPurl_keyvipthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/9all_children9path_in_storechildrenurl_pathvip.htmlchildren_count0display_modePRODUCTS_AND_PAGElanding_page31is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:40 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=i08hrkrk2p28115cl57578bl36; expires=Fri, 30-Jun-2017 + 13:34:40 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:40 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=57tr9sk10t3m6loi9qe8p74311; expires=Fri, 30-Jun-2017 + 13:34:40 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:40 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=8f93k39r7pidjnuegsm420dqh6; expires=Fri, 30-Jun-2017 + 13:34:40 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + catalog_category.info + + + + + + + + 24 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id24is_active1position3level3parent_id7increment_idcreated_at2013-01-25T12:08:54+01:00updated_at2013-03-08 + 19:27:16nameElectronicsurl_keyelectronicsthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7/24all_children24path_in_storechildrenurl_pathhome-decor/electronics.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:41 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=dq11j2u00s0vhc735vc5o6l335; expires=Fri, 30-Jun-2017 + 13:34:41 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + catalog_category.info + + + + + + + + 7 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id7is_active1position5level2parent_id2increment_idcreated_at2013-01-25T11:49:05+01:00updated_at2013-05-08 + 05:26:34nameHome + & Decorurl_keyhome-decorthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7all_children7,22,23,24,25path_in_storechildren22,23,24,25url_pathhome-decor.htmlchildren_count4display_modePAGElanding_page21is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutone_columncustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:41 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=0ijgnjsnpoqhsv0f0ra1osmtv6; expires=Fri, 30-Jun-2017 + 13:34:41 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + product_media.list + + + + + + + + 393 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hde003a_2.jpglabelposition2exclude0urlhttp://magento/media/catalog/product/h/d/hde003a_2.jpgtypesimagesmall_imagethumbnailfile/h/d/hde003b_.jpglabelposition4exclude0urlhttp://magento/media/catalog/product/h/d/hde003b_.jpgtypes'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:42 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=521f1vasdnaqt96tq35r6a2k35; expires=Fri, 30-Jun-2017 + 13:34:42 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + ol_catalog_product.info + + + + + + + + 396 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id396skuhde006set14typesimplecategories24websites1type_idsimplenameLarge + Camera BagdescriptionFlap + closure. Microfiber. 8.5" x 5" x 6". Domestic.short_descriptionKeep + your camera safe and secure in our Large Camera case.weight1.0000news_from_dateold_idnews_to_datestatus1url_keylarge-camera-bagvisibility4country_of_manufactureurl_pathlarge-camera-bag.htmlcategory_ids24required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:20+01:00updated_at2013-05-16 + 20:15:59price120.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecamera_typecolor17camera_megapixelselectronic_type219'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:42 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=9venp86op5urm1ojq3naqsefh6; expires=Fri, 30-Jun-2017 + 13:34:42 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + product_media.list + + + + + + + + 396 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hde006t.jpglabelposition4exclude0urlhttp://magento/media/catalog/product/h/d/hde006t.jpgtypesimagesmall_imagethumbnailfile/h/d/hde006b_1.jpglabelposition5exclude0urlhttp://magento/media/catalog/product/h/d/hde006b_1.jpgtypesfile/h/d/hde006c.jpglabelposition6exclude0urlhttp://magento/media/catalog/product/h/d/hde006c.jpgtypes'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:42 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=592ac8vkqlr3v7f5l9qk3kiob7; expires=Fri, 30-Jun-2017 + 13:34:42 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 105c77d1f2279b16b4be052d1cd57552 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:34:43 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=5kld97jr1bgmguo8vep2c91fr3; expires=Fri, 30-Jun-2017 + 13:34:43 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/import_sale_order_edited_2.yaml b/connector_magento/tests/fixtures/cassettes/import_sale_order_edited_2.yaml new file mode 100644 index 000000000..e4f865d2d --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/import_sale_order_edited_2.yaml @@ -0,0 +1,291 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 8854f74b72e4c5df303df2a9be4a1a81'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:37:29 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=tc3hrsd17ok447b80k1gl313a3; expires=Fri, 30-Jun-2017 + 13:37:29 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 8854f74b72e4c5df303df2a9be4a1a81 + + + + + + sales_order.info + + + + + + + + 100000200-1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['352'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + statenewstatuspendingcoupon_codeprotect_codeb4ee57shipping_descriptionUnited + Parcel Service - Groundis_virtual0store_id1customer_id135base_discount_amount0.0000base_discount_canceledbase_discount_invoicedbase_discount_refundedbase_grand_total910.1500base_shipping_amount0.0000base_shipping_canceledbase_shipping_invoicedbase_shipping_refundedbase_shipping_tax_amount0.0000base_shipping_tax_refundedbase_subtotal835.0000base_subtotal_canceledbase_subtotal_invoicedbase_subtotal_refundedbase_tax_amount75.1500base_tax_canceledbase_tax_invoicedbase_tax_refundedbase_to_global_rate1.0000base_to_order_rate1.0000base_total_canceledbase_total_invoicedbase_total_invoiced_costbase_total_offline_refundedbase_total_online_refundedbase_total_paidbase_total_qty_orderedbase_total_refundeddiscount_amount0.0000discount_canceleddiscount_invoiceddiscount_refundedgrand_total910.1500shipping_amount0.0000shipping_canceledshipping_invoicedshipping_refundedshipping_tax_amount0.0000shipping_tax_refundedstore_to_base_rate1.0000store_to_order_rate1.0000subtotal835.0000subtotal_canceledsubtotal_invoicedsubtotal_refundedtax_amount75.1500tax_canceledtax_invoicedtax_refundedtotal_canceledtotal_invoicedtotal_offline_refundedtotal_online_refundedtotal_paidtotal_qty_ordered2.0000total_refundedcan_ship_partiallycan_ship_partially_itemcustomer_is_guest0customer_note_notify0billing_address_id382customer_group_id1edit_increment1email_sentforced_shipment_with_invoicepayment_auth_expirationquote_address_idquote_id680shipping_address_id383adjustment_negativeadjustment_positivebase_adjustment_negativebase_adjustment_positivebase_shipping_discount_amount0.0000base_subtotal_incl_tax910.1500base_total_duepayment_authorization_amountshipping_discount_amount0.0000subtotal_incl_tax910.1500total_dueweight2.0000customer_dobincrement_id100000200-1applied_rule_ids29base_currency_codeEURcustomer_emailjohndoe@magento.comcustomer_firstnameJohncustomer_lastnameDoecustomer_middlenamecustomer_prefixcustomer_suffixcustomer_taxvatdiscount_descriptionext_customer_idext_order_idglobal_currency_codeEURhold_before_statehold_before_statusorder_currency_codeEURoriginal_increment_id100000200relation_child_idrelation_child_real_idrelation_parent_id180relation_parent_real_id100000200remote_ipshipping_methodups_GNDstore_currency_codeEURstore_nameMain + Website + + Madison Island + + Englishx_forwarded_forcustomer_notecreated_at2017-06-30 + 12:35:40updated_at2017-06-30 + 12:35:40total_item_count2customer_gender1hidden_tax_amount0.0000base_hidden_tax_amount0.0000shipping_hidden_tax_amount0.0000base_shipping_hidden_tax_amnt0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedshipping_incl_tax0.0000base_shipping_incl_tax0.0000coupon_rule_namepaypal_ipn_customer_notified0gift_message_idbase_customer_balance_amountcustomer_balance_amountbase_customer_balance_invoicedcustomer_balance_invoicedbase_customer_balance_refundedcustomer_balance_refundedbs_customer_bal_total_refundedcustomer_bal_total_refundedgift_cardsbase_gift_cards_amountgift_cards_amountbase_gift_cards_invoicedgift_cards_invoicedbase_gift_cards_refundedgift_cards_refundedgw_idgw_allow_gift_receiptgw_add_cardgw_base_pricegw_pricegw_items_base_pricegw_items_pricegw_card_base_pricegw_card_pricegw_base_tax_amountgw_tax_amountgw_items_base_tax_amountgw_items_tax_amountgw_card_base_tax_amountgw_card_tax_amountgw_base_price_invoicedgw_price_invoicedgw_items_base_price_invoicedgw_items_price_invoicedgw_card_base_price_invoicedgw_card_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_items_base_tax_invoicedgw_items_tax_invoicedgw_card_base_tax_invoicedgw_card_tax_invoicedgw_base_price_refundedgw_price_refundedgw_items_base_price_refundedgw_items_price_refundedgw_card_base_price_refundedgw_card_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedgw_items_base_tax_refundedgw_items_tax_refundedgw_card_base_tax_refundedgw_card_tax_refundedreward_points_balancebase_reward_currency_amountreward_currency_amountbase_rwrd_crrncy_amt_invoicedrwrd_currency_amount_invoicedbase_rwrd_crrncy_amnt_refndedrwrd_crrncy_amnt_refundedreward_points_balance_refundreward_points_balance_refundedreward_salesrule_pointsimported0payment_authorization_expirationforced_do_shipment_with_invoicebase_shipping_hidden_tax_amount0.0000order_id195shipping_addressparent_id195customer_address_id91quote_address_idregion_id12customer_id135faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjohndoe@example.comtelephone888-888-8888country_idUSfirstnameJohnaddress_typeshippingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id383billing_addressparent_id195customer_address_id91quote_address_idregion_id12customer_id135faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjohndoe@example.comtelephone888-888-8888country_idUSfirstnameJohnaddress_typebillingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id382itemsitem_id596order_id195parent_item_idquote_item_id2473store_id1created_at2017-06-30 + 12:35:40updated_at2017-06-30 + 12:35:40product_id393product_typesimpleproduct_optionsa:1:{s:15:"info_buyRequest";a:5:{s:4:"uenc";s:64:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9lbGVjdHJvbmljcy5odG1s";s:7:"product";s:3:"393";s:8:"form_key";s:16:"18owwYZqmMopo5xy";s:3:"qty";d:1;s:7:"options";a:0:{}}}weight1.0000is_virtual0skuhde003nameMadison + RX3400descriptionapplied_rule_ids29additional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice715.0000base_price715.0000original_price715.0000base_original_price715.0000tax_percent9.0000tax_amount64.3500base_tax_amount64.3500tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total715.0000base_row_total715.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax779.3500base_price_incl_tax779.3500row_total_incl_tax779.3500base_row_total_incl_tax779.3500hidden_tax_amount0.0000base_hidden_tax_amount0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000item_id597order_id195parent_item_idquote_item_id2474store_id1created_at2017-06-30 + 12:35:40updated_at2017-06-30 + 12:35:40product_id396product_typesimpleproduct_optionsa:1:{s:15:"info_buyRequest";a:5:{s:4:"uenc";s:64:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9lbGVjdHJvbmljcy5odG1s";s:7:"product";s:3:"396";s:8:"form_key";s:16:"18owwYZqmMopo5xy";s:3:"qty";d:1;s:7:"options";a:0:{}}}weight1.0000is_virtual0skuhde006nameLarge + Camera Bagdescriptionapplied_rule_ids29additional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice120.0000base_price120.0000original_price120.0000base_original_price120.0000tax_percent9.0000tax_amount10.8000base_tax_amount10.8000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total120.0000base_row_total120.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax130.8000base_price_incl_tax130.8000row_total_incl_tax130.8000base_row_total_incl_tax130.8000hidden_tax_amount0.0000base_hidden_tax_amount0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000paymentparent_id195base_shipping_capturedshipping_capturedamount_refundedbase_amount_paidamount_canceledbase_amount_authorizedbase_amount_paid_onlinebase_amount_refunded_onlinebase_shipping_amount0.0000shipping_amount0.0000amount_paidamount_authorizedbase_amount_ordered910.1500base_shipping_refundedshipping_refundedbase_amount_refundedamount_ordered910.1500base_amount_canceledquote_payment_idadditional_datacc_exp_month0cc_ss_start_year0echeck_bank_namemethodcashondeliverycc_debug_request_bodycc_secure_verifyprotection_eligibilitycc_approvalcc_last4cc_status_descriptionecheck_typecc_debug_response_serializedcc_ss_start_month0echeck_account_typelast_trans_idcc_cid_statuscc_ownercc_typepo_numbercc_exp_year0cc_statusecheck_routing_numberaccount_statusanet_trans_methodcc_debug_response_bodycc_ss_issueecheck_account_namecc_avs_statuscc_number_enccc_trans_idpaybox_request_numberaddress_statusadditional_informationcybersource_tokenflo2cash_account_idideal_issuer_idideal_issuer_titleideal_transaction_checkedpaybox_question_numberpayment_id195status_historyparent_id195is_customer_notified0is_visible_on_front0commentstatuspendingcreated_at2017-06-30 + 12:35:40entity_nameorderstore_id1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:37:29 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=bj11c5t70b58k2jtir2bitu9f1; expires=Fri, 30-Jun-2017 + 13:37:29 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 8854f74b72e4c5df303df2a9be4a1a81 + + + + + + customer.info + + + + + + + + 135 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['335'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id135created_at2013-05-16T06:16:11+02:00updated_at2017-06-30 + 12:35:40increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billing91default_shipping91disable_auto_group_change0dobemailjohndoe@example.comfirstnameJohngender1group_id1lastnameDoemiddlenamepassword_hash60d0b6777081273c90d9dcf6342b18d511d539f5f119b56a364b2b0ff6dd29f1:O9hr8Lafe1STOCnJkp2ZHjFMrfM9plGnprefixreward_update_notification1reward_warning_notification1rp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:37:29 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=502t7jn4hbkc2bh25ujtadd8g0; expires=Fri, 30-Jun-2017 + 13:37:29 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 8854f74b72e4c5df303df2a9be4a1a81 + + + + + + sales_order.get_parent + + + + + + + + 100000200 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['356'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 0'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:37:30 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=e1pcjbv7dnq6h1k0vg151bcbi4; expires=Fri, 30-Jun-2017 + 13:37:30 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 8854f74b72e4c5df303df2a9be4a1a81 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:37:31 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=vgs7a70g574dectus2hsjge880; expires=Fri, 30-Jun-2017 + 13:37:31 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/metadata.yaml b/connector_magento/tests/fixtures/cassettes/metadata.yaml new file mode 100644 index 000000000..cdc777e58 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/metadata.yaml @@ -0,0 +1,1671 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 84fb6f700118b43859a0f938a1f10a14'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=4ostfnto3le0om4t7kbmaf67u0; expires=Tue, 27-Jun-2017 + 11:58:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 84fb6f700118b43859a0f938a1f10a14 + + + + + + ol_websites.search + + + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['344'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 01'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=hsfjg2238k7fe01uu3uistb1h0; expires=Tue, 27-Jun-2017 + 11:58:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 0df6ac93beac792fcce2c2295895d25c'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=18q0v5u3ed8ucshbvava5tucp2; expires=Tue, 27-Jun-2017 + 11:58:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 0df6ac93beac792fcce2c2295895d25c + + + + + + ol_websites.info + + + + + + + + 0 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['336'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + website_id0codeadminnameAdminsort_order0default_group_id0is_default0is_staging0master_loginmaster_passwordvisibility'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=fj6neup6b10ciectcqbsdg1pq2; expires=Tue, 27-Jun-2017 + 11:58:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 0df6ac93beac792fcce2c2295895d25c + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ev9jjctcmqs8km4rdol0h3brq3; expires=Tue, 27-Jun-2017 + 11:58:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 624ae0b6a2da6f8b81d1663c5a5b438d'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=0hgd2mu7ihq0pddu7nokm14qs3; expires=Tue, 27-Jun-2017 + 11:58:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 624ae0b6a2da6f8b81d1663c5a5b438d + + + + + + ol_websites.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['336'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + website_id1codebasenameMain + Websitesort_order0default_group_id1is_default1is_staging0master_loginmaster_passwordvisibility'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=btkf3l1m7gofa66rrhaea6jol3; expires=Tue, 27-Jun-2017 + 11:58:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 624ae0b6a2da6f8b81d1663c5a5b438d + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=5ig8570mrqpoku188hu8o0idu4; expires=Tue, 27-Jun-2017 + 11:58:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 84fb6f700118b43859a0f938a1f10a14 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=rpnc19bfc5lbrjjmsh7bbqjtl6; expires=Tue, 27-Jun-2017 + 11:58:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + ade882b9f64897f7e5f0db03690d59ea'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=1mrabepm3hu978nsf8kfbolc87; expires=Tue, 27-Jun-2017 + 11:58:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + ade882b9f64897f7e5f0db03690d59ea + + + + + + ol_groups.search + + + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 01'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ip4gej1regp9690agd5ue6kce6; expires=Tue, 27-Jun-2017 + 11:58:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 44e6259b47ee71c8b2917c30c171e63b'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=1b9pa2j75ubsub3ehfph1p9ei3; expires=Tue, 27-Jun-2017 + 11:58:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 44e6259b47ee71c8b2917c30c171e63b + + + + + + ol_groups.info + + + + + + + + 0 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['334'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + group_id0website_id0nameDefaultroot_category_id0default_store_id0'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=8h8s3vjci7gaa7fpn17d4muc10; expires=Tue, 27-Jun-2017 + 11:58:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 44e6259b47ee71c8b2917c30c171e63b + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=m2tunrbpc83ot0m584l3jnruo3; expires=Tue, 27-Jun-2017 + 11:58:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 9bd710d1cd2f83a647fbee1c5e61911d'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=1kjke14mjeas9it56bs9qgulp2; expires=Tue, 27-Jun-2017 + 11:58:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 9bd710d1cd2f83a647fbee1c5e61911d + + + + + + ol_groups.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['334'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + group_id1website_id1nameMadison + Islandroot_category_id2default_store_id1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:58:59 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=bj4rb4drphq47rttgo8rhl6ev4; expires=Tue, 27-Jun-2017 + 11:58:59 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 9bd710d1cd2f83a647fbee1c5e61911d + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=9uj5ip463rf71635c0o3g7uee7; expires=Tue, 27-Jun-2017 + 11:59:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + ade882b9f64897f7e5f0db03690d59ea + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=8q8e75q3sp64s92nb9gpo26bf2; expires=Tue, 27-Jun-2017 + 11:59:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1a5c064e81e10ced1dee4b230bb949ed'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=jcmoch99diga4c20pk1o9gmgt4; expires=Tue, 27-Jun-2017 + 11:59:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 1a5c064e81e10ced1dee4b230bb949ed + + + + + + ol_storeviews.search + + + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['346'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 0123'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ca8h7sir8p15i59bn7hchg5kd0; expires=Tue, 27-Jun-2017 + 11:59:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + cebcec419a7500dd467c3e53bae88e0b'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=h9n9r9obj302q4im7spkv9qmg6; expires=Tue, 27-Jun-2017 + 11:59:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + cebcec419a7500dd467c3e53bae88e0b + + + + + + ol_storeviews.info + + + + + + + + 0 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['338'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + store_id0codeadminwebsite_id0group_id0nameAdminsort_order0is_active1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=jmhsdmfs8dnajkh6l571us8no6; expires=Tue, 27-Jun-2017 + 11:59:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + cebcec419a7500dd467c3e53bae88e0b + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=3qourb8ks2hbc41ua7iotulrd4; expires=Tue, 27-Jun-2017 + 11:59:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 43ffd47eea38f6bbfd5169f0b4abd7ff'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=jqda1bqchfe59c9gavg5cfmrv4; expires=Tue, 27-Jun-2017 + 11:59:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 43ffd47eea38f6bbfd5169f0b4abd7ff + + + + + + ol_storeviews.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['338'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + store_id1codedefaultwebsite_id1group_id1nameEnglishsort_order0is_active1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=nemomopp559utd8mbc95nqntq2; expires=Tue, 27-Jun-2017 + 11:59:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 43ffd47eea38f6bbfd5169f0b4abd7ff + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:00 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=q9of88l6vfrkgacbf0la4t1014; expires=Tue, 27-Jun-2017 + 11:59:00 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 40ae3673b6ff6c777058f4c05a07e8a6'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:01 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=sdh0i2dei5r14mjhra2mh1bbo0; expires=Tue, 27-Jun-2017 + 11:59:01 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 40ae3673b6ff6c777058f4c05a07e8a6 + + + + + + ol_storeviews.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['338'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + store_id2codefrenchwebsite_id1group_id1nameFrenchsort_order0is_active1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:01 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=s6si41avont5c0nvge9keb2tv5; expires=Tue, 27-Jun-2017 + 11:59:01 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 40ae3673b6ff6c777058f4c05a07e8a6 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:01 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=p4ihlaj2d9cg4ggf8ejfupmvu6; expires=Tue, 27-Jun-2017 + 11:59:01 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 269d4fb5af36afcc5a59f412c984e31b'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:01 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=hesh395lqan8d5hvlcrs3tclg6; expires=Tue, 27-Jun-2017 + 11:59:01 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 269d4fb5af36afcc5a59f412c984e31b + + + + + + ol_storeviews.info + + + + + + + + 3 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['338'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + store_id3codegermanwebsite_id1group_id1nameGermansort_order0is_active1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:01 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=6b7ur5n7vtc1vacbg0rd7anfr7; expires=Tue, 27-Jun-2017 + 11:59:01 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 269d4fb5af36afcc5a59f412c984e31b + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:01 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=165oe8g6gh4dqab3lj71am2gj0; expires=Tue, 27-Jun-2017 + 11:59:01 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 1a5c064e81e10ced1dee4b230bb949ed + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 10:59:01 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=f66j2m3i878t17tq9tflrcc9n2; expires=Tue, 27-Jun-2017 + 11:59:01 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_export_invoice.yaml b/connector_magento/tests/fixtures/cassettes/test_export_invoice.yaml new file mode 100644 index 000000000..6dd77853a --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_export_invoice.yaml @@ -0,0 +1,171 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + e5ca5651ce4c1b4f6df738fc62b17512'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:00:10 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=dgup92s1aplmk55i4lvegicqb6; expires=Mon, 10-Jul-2017 + 14:00:10 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e5ca5651ce4c1b4f6df738fc62b17512 + + + + + + sales_order_invoice.create + + + + + + + + 145000008 + + + + + + 598 + + 1.0 + + + + + + Invoice Created + + 1 + + 0 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['586'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 987654321'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:00:11 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=es95go20ti2mf0dq2j0b29ijj4; expires=Mon, 10-Jul-2017 + 14:00:10 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + e5ca5651ce4c1b4f6df738fc62b17512 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 13:00:11 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=98phoc9kkip3t7mgqakurd3gi5; expires=Mon, 10-Jul-2017 + 14:00:11 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_export_picking_complete.yaml b/connector_magento/tests/fixtures/cassettes/test_export_picking_complete.yaml new file mode 100644 index 000000000..7adc0cf94 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_export_picking_complete.yaml @@ -0,0 +1,163 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + a0310725164df95022657cdd6e5b10fa'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:25:44 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=9ordge0ntikmt57qicktgaj804; expires=Fri, 30-Jun-2017 + 16:25:44 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + a0310725164df95022657cdd6e5b10fa + + + + + + sales_order_shipment.create + + + + + + + + 100000201 + + + + + + Shipping Created + + 1 + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['516'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 987654321'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 12:37:31 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=vgs7a70g574dectus2hsjge880; expires=Fri, 30-Jun-2017 + 13:37:31 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + a0310725164df95022657cdd6e5b10fa + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 15:25:45 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=iq06s2uhh8kk4ro1oleem27rn2; expires=Fri, 30-Jun-2017 + 16:25:45 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_export_picking_partial.yaml b/connector_magento/tests/fixtures/cassettes/test_export_picking_partial.yaml new file mode 100644 index 000000000..14853ac9c --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_export_picking_partial.yaml @@ -0,0 +1,171 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 68a962f4df98a1de23b1c08ff55d462b'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 07 Jul 2017 15:02:20 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=u8pr5beipl3bvel1r0kbbgui87; expires=Fri, 07-Jul-2017 + 16:02:20 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 68a962f4df98a1de23b1c08ff55d462b + + + + + + sales_order_shipment.create + + + + + + + + 100000201 + + + + + + 543 + + 1.0 + + + + + + Shipping Created + + 1 + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['588'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 987654321'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 07 Jul 2017 15:02:20 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=iljcagpkcbkuo2gfhkqico2em5; expires=Fri, 07-Jul-2017 + 16:02:20 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 68a962f4df98a1de23b1c08ff55d462b + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 07 Jul 2017 15:02:20 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=iljcagpkcbkuo2gfhkqico2em5; expires=Fri, 07-Jul-2017 + 16:02:20 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_export_tracking_number.yaml b/connector_magento/tests/fixtures/cassettes/test_export_tracking_number.yaml new file mode 100644 index 000000000..fb99006a3 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_export_tracking_number.yaml @@ -0,0 +1,223 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 5a4bf06a0e2f9c6e185ca9a0164ee762'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 10:02:12 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ck9igvjl1gohh5knbvr30m9v12; expires=Mon, 10-Jul-2017 + 11:02:12 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 5a4bf06a0e2f9c6e185ca9a0164ee762 + + + + + + sales_order_shipment.getCarriers + + + + + + + + 100000201 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['366'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customCustom + ValuedhlDHL + (Deprecated)fedexFederal + ExpressupsUnited + Parcel ServiceuspsUnited + States Postal ServicedhlintDHL'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 10:02:12 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=rm176m05enre101f3pkgd70kt6; expires=Mon, 10-Jul-2017 + 11:02:12 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 5a4bf06a0e2f9c6e185ca9a0164ee762 + + + + + + sales_order_shipment.addTrack + + + + + + + + 100000035 + + ups + + + + XYZ + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['468'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 2'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 10:02:13 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=upa7dv7qo9547cpnaaack0uaq2; expires=Mon, 10-Jul-2017 + 11:02:13 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 5a4bf06a0e2f9c6e185ca9a0164ee762 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Mon, 10 Jul 2017 10:02:13 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=dvfs53tpc8lm788c8t3u07sip5; expires=Mon, 10-Jul-2017 + 11:02:13 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_existing_partner_category.yaml b/connector_magento/tests/fixtures/cassettes/test_import_existing_partner_category.yaml new file mode 100644 index 000000000..5eb8a5f1b --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_existing_partner_category.yaml @@ -0,0 +1,153 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1d04618f04cffa04f498608730778f4f'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 14:28:43 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=27skhhsojm8smh6s9m8kifbk81; expires=Tue, 27-Jun-2017 + 15:28:43 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 1d04618f04cffa04f498608730778f4f + + + + + + ol_customer_groups.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['343'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_group_id2customer_group_codeWholesaletax_class_id5'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 14:28:43 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=m7su3fab1atubbm7ni69ur3t96; expires=Tue, 27-Jun-2017 + 15:28:43 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 1d04618f04cffa04f498608730778f4f + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 14:28:43 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=2te8i4ffrv1a43rtnf1a2c40d0; expires=Tue, 27-Jun-2017 + 15:28:43 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_partner_category.yaml b/connector_magento/tests/fixtures/cassettes/test_import_partner_category.yaml new file mode 100644 index 000000000..9503d100d --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_partner_category.yaml @@ -0,0 +1,153 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + ac3e731a923c9d85f61eb372fed6647a'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 14:28:44 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=cjd36ine3u378f3h4gle87umm5; expires=Tue, 27-Jun-2017 + 15:28:44 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + ac3e731a923c9d85f61eb372fed6647a + + + + + + ol_customer_groups.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['343'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_group_id2customer_group_codeWholesaletax_class_id5'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 14:28:44 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=689e8s6euv0cp7r4e81gh2bnc2; expires=Tue, 27-Jun-2017 + 15:28:44 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + ac3e731a923c9d85f61eb372fed6647a + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 14:28:44 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=djpcqifae8olgrq2ccvqsuqll5; expires=Tue, 27-Jun-2017 + 15:28:44 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_partner_company_1_address.yaml b/connector_magento/tests/fixtures/cassettes/test_import_partner_company_1_address.yaml new file mode 100644 index 000000000..a9be8584c --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_partner_company_1_address.yaml @@ -0,0 +1,360 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + fe4be79beba04a604f88c985f58c774c'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:35:26 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=tseb7lopg5nd1eh4ovg68v2du2; expires=Tue, 27-Jun-2017 + 16:35:26 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + fe4be79beba04a604f88c985f58c774c + + + + + + customer.info + + + + + + + + 104 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['335'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id104created_at2013-04-24T17:24:51+02:00updated_at2017-06-27 + 15:34:34increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billing73default_shipping73disable_auto_group_change0dob1985-02-08 + 00:00:00emaildrew@example.comfirstnameDrewgender1group_id4lastnameFrancemiddlenamepassword_hash2350686c97788153d7b09cc73e6cd20155761a430030665c2aedad758e3553a4:fs6y1OSMqjnWQJ8jeJpdQV3xWajNbgbFprefixreward_update_notification1reward_warning_notification1rp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:35:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=0v1d1mjph6mdfg8un0rhm1dpb2; expires=Tue, 27-Jun-2017 + 16:35:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + fe4be79beba04a604f88c985f58c774c + + + + + + ol_customer_groups.info + + + + + + + + 4 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['343'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_group_id4customer_group_codeVIP + Membertax_class_id3'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:35:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=2r3c2o66g7cm56d53hdt34o492; expires=Tue, 27-Jun-2017 + 16:35:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + fe4be79beba04a604f88c985f58c774c + + + + + + customer_address.list + + + + + + + + + + + + customer_id + + + + + + eq + + 104 + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['496'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id73created_at2013-04-24 + 13:24:51updated_at2017-06-27 + 15:34:34cityPariscompanyDrew + Francecountry_idFRfirstnameDrewlastnameFrancepostcode75008regionParisregion_id257streetLake + view sttelephone907-555-3209is_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:35:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=bt8dbvpfatt0r4crn1nqj6a2u4; expires=Tue, 27-Jun-2017 + 16:35:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + fe4be79beba04a604f88c985f58c774c + + + + + + customer_address.info + + + + + + + + 73 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id73created_at2013-04-24T15:24:51+02:00updated_at2017-06-27 + 15:34:34increment_idcityPariscompanyDrew + Francecountry_idFRfaxfirstnameDrewlastnameFrancemiddlenamepostcode75008prefixregionParisregion_id257streetLake + view stsuffixtelephone907-555-3209vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:35:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=v8fvo0ofu54t4ecj7f58np34n7; expires=Tue, 27-Jun-2017 + 16:35:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + fe4be79beba04a604f88c985f58c774c + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:35:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=3j1uem8f655vkoejvnhf1niq17; expires=Tue, 27-Jun-2017 + 16:35:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_partner_company_2_addresses.yaml b/connector_magento/tests/fixtures/cassettes/test_import_partner_company_2_addresses.yaml new file mode 100644 index 000000000..e3fadef34 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_partner_company_2_addresses.yaml @@ -0,0 +1,366 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 5da222aeadc7b792517002966717c50d'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:38:03 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=98pgpmk1gvjibu22r25b78ivi0; expires=Tue, 27-Jun-2017 + 16:38:03 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 5da222aeadc7b792517002966717c50d + + + + + + customer.info + + + + + + + + 99 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['334'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id99created_at2013-04-24T17:09:09+02:00updated_at2017-06-27 + 15:36:55increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billing68default_shipping98disable_auto_group_change0dob1984-10-14 + 00:00:00emailclay@example.comfirstnameClaygender1group_id1lastnameLockmiddlenamepassword_hashf8ecdf1259a416f11d76d5af05417470919dbf67a27636ebf38e37ea637e7542:wAprefixreward_update_notification1reward_warning_notification1rp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:38:03 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=42p7rb5lchh40ieig4r3vpg6s4; expires=Tue, 27-Jun-2017 + 16:38:03 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 5da222aeadc7b792517002966717c50d + + + + + + customer_address.list + + + + + + + + + + + + customer_id + + + + + + eq + + 99 + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['495'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id68created_at2013-04-24 + 13:09:09updated_at2017-06-27 + 15:36:55cityMantolokingcompanyClay + Lockcountry_idUSfirstnameClaylastnameLockpostcode44025regionOhioregion_id47streetBride + Pathtelephone909-555-9078is_default_billing1is_default_shipping0customer_address_id98created_at2017-06-27 + 15:36:55updated_at2017-06-27 + 15:36:55cityMantolokingcompanyClay + Lockcountry_idUSfirstnameClaylastnameLockpostcode44025regionOhioregion_id47streetMay + Streettelephone909-555-9078is_default_billing0is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:38:03 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=5phmtaqdokm864e1g2vr3c73g1; expires=Tue, 27-Jun-2017 + 16:38:03 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 5da222aeadc7b792517002966717c50d + + + + + + customer_address.info + + + + + + + + 68 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id68created_at2013-04-24T15:09:09+02:00updated_at2017-06-27 + 15:36:55increment_idcityMantolokingcompanyClay + Lockcountry_idUSfaxfirstnameClaylastnameLockmiddlenamepostcode44025prefixregionOhioregion_id47streetBride + Pathsuffixtelephone909-555-9078vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing1is_default_shipping0'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:38:04 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=2l42krqome5e80ns783qobrs41; expires=Tue, 27-Jun-2017 + 16:38:03 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 5da222aeadc7b792517002966717c50d + + + + + + customer_address.info + + + + + + + + 98 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id98created_at2017-06-27T17:36:55+02:00updated_at2017-06-27 + 15:36:55increment_idcityMantolokingcompanyClay + Lockcountry_idUSfaxfirstnameClaylastnameLockmiddlenamepostcode44025prefixregionOhioregion_id47streetMay + Streetsuffixtelephone909-555-9078vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing0is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:38:04 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=oo9q61dabr9pgas88lf3q9naa2; expires=Tue, 27-Jun-2017 + 16:38:04 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 5da222aeadc7b792517002966717c50d + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:38:04 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=2e5ihjo28s5lk9554u634upkf6; expires=Tue, 27-Jun-2017 + 16:38:04 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_partner_individual_1_address.yaml b/connector_magento/tests/fixtures/cassettes/test_import_partner_individual_1_address.yaml new file mode 100644 index 000000000..e4ff19a70 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_partner_individual_1_address.yaml @@ -0,0 +1,299 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 6182b5cd383ebb2e8ee1ba951465b614'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:15:49 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=15gho1rd96eh0tsvek1173fkj4; expires=Tue, 27-Jun-2017 + 16:15:49 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 6182b5cd383ebb2e8ee1ba951465b614 + + + + + + customer.info + + + + + + + + 136 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['335'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id136created_at2013-05-16T06:20:45+02:00updated_at2014-05-03 + 21:36:47increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billing92default_shipping92disable_auto_group_change0dobemailjanedoe@example.comfirstnameJanegendergroup_id1lastnameDoemiddlenamepassword_hash80f8bdf79491b99b8180a4e746046ea5:8huK4jwUrBIwUTnw3LuWKT9MzAQghb5zprefixreward_update_notification1reward_warning_notification1rp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:15:49 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=triin6q745albcp7fh5nlvo651; expires=Tue, 27-Jun-2017 + 16:15:49 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 6182b5cd383ebb2e8ee1ba951465b614 + + + + + + customer_address.list + + + + + + + + + + + + customer_id + + + + + + eq + + 136 + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['496'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id92created_at2013-05-17 + 01:20:45updated_at2014-05-03 + 21:36:47cityCulver + Citycountry_idUSfirstnameJanelastnameDoepostcode90232regionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200telephone888-888-8888is_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:15:49 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=k6kiuor3q8mr0m3ducr34mear4; expires=Tue, 27-Jun-2017 + 16:15:49 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 6182b5cd383ebb2e8ee1ba951465b614 + + + + + + customer_address.info + + + + + + + + 92 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id92created_at2013-05-17T03:20:45+02:00updated_at2014-05-03 + 21:36:47increment_idcityCulver + Citycompanycountry_idUSfaxfirstnameJanelastnameDoemiddlenamepostcode90232prefixregionCaliforniaregion_id12street10441 + Jefferson Blvd, Suite 200suffixtelephone888-888-8888vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing1is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:15:49 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=oisutchskul73hoj1er0805h22; expires=Tue, 27-Jun-2017 + 16:15:49 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 6182b5cd383ebb2e8ee1ba951465b614 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:15:49 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=42v02vkk3ns32bvv3qlnjo7pp4; expires=Tue, 27-Jun-2017 + 16:15:49 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_partner_individual_2_addresses.yaml b/connector_magento/tests/fixtures/cassettes/test_import_partner_individual_2_addresses.yaml new file mode 100644 index 000000000..3c27edc88 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_partner_individual_2_addresses.yaml @@ -0,0 +1,422 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + f1c65c52be0282b6ba023e290f223dbf'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:25:34 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=olokd6rimp3d9btt6mh9s9nn83; expires=Tue, 27-Jun-2017 + 16:25:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1c65c52be0282b6ba023e290f223dbf + + + + + + customer.info + + + + + + + + 65 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['334'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id65created_at2013-04-22T19:32:24+02:00updated_at2017-06-27 + 15:24:46increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billing35default_shipping97disable_auto_group_change0dob1980-01-01 + 00:00:00emailtay@example.comfirstnameTaygender1group_id4lastnameRaymiddlenamepassword_hashecc068bcc7d0ea6fed5f0697d7dff0433ed435232f388326e1be8e31625f29c2:lLprefixreward_update_notification1reward_warning_notification1rp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:25:34 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=m2k13o7of07ap1bm4sdikrlnj4; expires=Tue, 27-Jun-2017 + 16:25:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1c65c52be0282b6ba023e290f223dbf + + + + + + ol_customer_groups.info + + + + + + + + 4 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['343'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_group_id4customer_group_codeVIP + Membertax_class_id3'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:25:34 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=bg4ouki304p9ql7e6cagu2kp60; expires=Tue, 27-Jun-2017 + 16:25:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1c65c52be0282b6ba023e290f223dbf + + + + + + customer_address.list + + + + + + + + + + + + customer_id + + + + + + eq + + 65 + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['495'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id35created_at2013-04-22 + 15:32:24updated_at2017-06-27 + 15:24:46cityMichigancountry_idUSfirstnameTaylastnameRaypostcode49036regionMichiganregion_id33streetCanal + Streettelephone666-555-4423is_default_billing1is_default_shipping0customer_address_id97created_at2017-06-27 + 15:24:46updated_at2017-06-27 + 15:24:46cityMichigancountry_idUSfirstnameTaylastnameRaypostcode49036regionMichiganregion_id33streetRiver + Streettelephone666-555-4423is_default_billing0is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:25:34 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=gsg458jn3hn2u8eld9sk1iptt4; expires=Tue, 27-Jun-2017 + 16:25:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1c65c52be0282b6ba023e290f223dbf + + + + + + customer_address.info + + + + + + + + 35 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id35created_at2013-04-22T17:32:24+02:00updated_at2017-06-27 + 15:24:46increment_idcityMichigancompanycountry_idUSfaxfirstnameTaylastnameRaymiddlenamepostcode49036prefixregionMichiganregion_id33streetCanal + Streetsuffixtelephone666-555-4423vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing1is_default_shipping0'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:25:35 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=vu8tbof449ilo7hfqjfh3jvp54; expires=Tue, 27-Jun-2017 + 16:25:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + f1c65c52be0282b6ba023e290f223dbf + + + + + + customer_address.info + + + + + + + + 97 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_address_id97created_at2017-06-27T17:24:46+02:00updated_at2017-06-27 + 15:24:46increment_idcityMichigancompanycountry_idUSfaxfirstnameTaylastnameRaymiddlenamepostcode49036prefixregionMichiganregion_id33streetRiver + Streetsuffixtelephone666-555-4423vat_idvat_is_validvat_request_datevat_request_idvat_request_successis_default_billing0is_default_shipping1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:25:35 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=i4n7ne6bntd6fa4ca9mlfv6g26; expires=Tue, 27-Jun-2017 + 16:25:35 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + f1c65c52be0282b6ba023e290f223dbf + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:25:35 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=nes287e2vh16jo80g0mhf9nbo2; expires=Tue, 27-Jun-2017 + 16:25:35 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_partner_no_address.yaml b/connector_magento/tests/fixtures/cassettes/test_import_partner_no_address.yaml new file mode 100644 index 000000000..a34b3f71b --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_partner_no_address.yaml @@ -0,0 +1,234 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + e4484473aef2390d2268967263e13fd9'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:13:46 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=b634vc2s3gbjrl8lbu9erb40o4; expires=Tue, 27-Jun-2017 + 16:13:46 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e4484473aef2390d2268967263e13fd9 + + + + + + customer.info + + + + + + + + 139 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['335'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + customer_id139created_at2017-06-27T17:13:08+02:00updated_at2017-06-27 + 15:13:08increment_idstore_id0website_id1confirmationcreated_inAdmindefault_billingdefault_shippingdisable_auto_group_change0dobemailbenjamin@example.comfirstnameBenjamingendergroup_id1lastnameLe + Goffmiddlenamepassword_hash023c5a9162fd33e5bec68cb4a590ab6b:7ldf1WHwGKStmpozbMYDfSkjhod2BkJNprefixreward_update_notificationreward_warning_notificationrp_tokenrp_token_created_atsuffixtaxvat'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:13:46 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ff2mr561gajgckt79iu95nq761; expires=Tue, 27-Jun-2017 + 16:13:46 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + e4484473aef2390d2268967263e13fd9 + + + + + + customer_address.list + + + + + + + + + + + + customer_id + + + + + + eq + + 139 + + + + + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['496'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + '} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:13:46 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=6ssbr01ol6mbkio5tng3shgv45; expires=Tue, 27-Jun-2017 + 16:13:46 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + e4484473aef2390d2268967263e13fd9 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Tue, 27 Jun 2017 15:13:46 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=scmkiiuud3gncu4humt4vr1fk0; expires=Tue, 27-Jun-2017 + 16:13:46 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_product.yaml b/connector_magento/tests/fixtures/cassettes/test_import_product.yaml new file mode 100644 index 000000000..3043a002b --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_product.yaml @@ -0,0 +1,222 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + beea7d6a40be57888f268f58a7ed793b'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 11:02:26 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=63bn0h59vtn20rfk6vrg7jv8f5; expires=Wed, 28-Jun-2017 + 12:02:26 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + beea7d6a40be57888f268f58a7ed793b + + + + + + ol_catalog_product.info + + + + + + + + 337 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id337skuace000set11typesimplecategories18websites1type_idsimplenameAviator + SunglassesdescriptionGunmetal + frame with crystal gradient polycarbonate lenses in grey. short_descriptionA + timeless accessory staple, the unmistakable teardrop lenses of our Aviator + sunglasses appeal to everyone from suits to rock stars to citizens of the + world.weight1.0000news_from_dateold_idnews_to_datestatus1url_keyaviator-sunglassesvisibility4country_of_manufactureurl_pathaviator-sunglasses.htmlcategory_ids18required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:17+01:00updated_at2013-03-20 + 16:45:10price295.0000group_pricespecial_pricespecial_from_dateminimal_pricespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricecolor15gender93material130luggage_sizeluggage_travel_stylebag_luggage_typeaccessories_sizeaccessories_typeEyewearluggage_style'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 11:02:26 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=u1vn7oa4rhsi82k680v609tv66; expires=Wed, 28-Jun-2017 + 12:02:26 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + beea7d6a40be57888f268f58a7ed793b + + + + + + product_media.list + + + + + + + + 337 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/a/c/ace000a_1.jpglabelposition1exclude0urlhttp://magento/media/catalog/product/a/c/ace000a_1.jpgtypesimagesmall_imagethumbnailfile/a/c/ace000b_1.jpglabelposition2exclude0urlhttp://magento/media/catalog/product/a/c/ace000b_1.jpgtypes'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 11:02:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=snj3nuimd46iuc7nge4usfu7b3; expires=Wed, 28-Jun-2017 + 12:02:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + beea7d6a40be57888f268f58a7ed793b + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 11:02:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=oo76pdd8pora9jsghrefdvl0o3; expires=Wed, 28-Jun-2017 + 12:02:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_product_bundle.yaml b/connector_magento/tests/fixtures/cassettes/test_import_product_bundle.yaml new file mode 100644 index 000000000..ca341c61e --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_product_bundle.yaml @@ -0,0 +1,5391 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 47f7a88eac3b9f145009f20485e38ce8'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:53 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=jpjoj12srut488b87248ph56b2; expires=Fri, 30-Jun-2017 + 10:53:53 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + ol_catalog_product.info + + + + + + + + 447 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id447skuhdb010set16typebundlecategories723websites1type_idbundlenamePillow + and Throw SetdescriptionIncludes + a choice between Titian Raw Silk Pillow or Shay Printed Pillow and our Carnegia + Alpaca Throw or Park Row Throw or Gramercy Throw. + + short_descriptionA + conveniently packaged pairing of our pillows and throws. + + weightnews_from_dateold_idnews_to_datestatus1url_keypillow-and-throw-setvisibility4country_of_manufactureurl_pathpillow-and-throw-set.htmlcategory_ids723required_options1has_options1image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T08:10:53+01:00updated_at2013-03-20 + 18:17:25price_type0sku_type0weight_type0shipment_type0pricegroup_pricespecial_pricespecial_from_dateminimal_pricespecial_to_datetier_pricemsrp_enabled0msrp_display_actual_price_typemsrptax_class_idprice_view0meta_titlemeta_keywordmeta_descriptioncustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricebed_bath_type184decor_type217home_decor_type191bedding_pattern_bundle_dataoptionsoption_id23required1position2typeselectdefault_titleDecorative + ThrowtitleDecorative + Throwselectionsselection_id88position0skuhdb007product_id383is_default0selection_price_typefixedselection_price_value0.0000selection_qty1.0000selection_can_change_qty1selection_id89position0skuhdb008product_id384is_default0selection_price_typefixedselection_price_value0.0000selection_qty1.0000selection_can_change_qty1selection_id115position0skuhdb009product_id385is_default0selection_price_typefixedselection_price_value0.0000selection_qty1.0000selection_can_change_qty1option_id24required1position1typeselectdefault_titleAccent + PillowtitleAccent + Pillowselectionsselection_id91position0skuhdb005product_id381is_default0selection_price_typefixedselection_price_value0.0000selection_qty1.0000selection_can_change_qty1selection_id92position0skuhdb006product_id382is_default0selection_price_typefixedselection_price_value0.0000selection_qty1.0000selection_can_change_qty1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:53 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=hh0b8qjddtdibqdlr31npj4jo1; expires=Fri, 30-Jun-2017 + 10:53:53 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + catalog_category.info + + + + + + + + 7 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id7is_active1position5level2parent_id2increment_idcreated_at2013-01-25T11:49:05+01:00updated_at2013-05-08 + 05:26:34nameHome + & Decorurl_keyhome-decorthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7all_children7,22,23,24,25path_in_storechildren22,23,24,25url_pathhome-decor.htmlchildren_count4display_modePAGElanding_page21is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutone_columncustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:54 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=nsjr4ecn8mnjl0issmmd47kra6; expires=Fri, 30-Jun-2017 + 10:53:53 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:54 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=roh37am4u1h5ulqrhvdfcudge7; expires=Fri, 30-Jun-2017 + 10:53:54 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:54 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ikdpku0pmmjvjjltlk7pd94ta0; expires=Fri, 30-Jun-2017 + 10:53:54 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + catalog_category.info + + + + + + + + 23 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id23is_active1position2level3parent_id7increment_idcreated_at2013-01-25T12:08:31+01:00updated_at2013-03-05 + 07:17:38nameBed + & Bathurl_keybed-baththumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7/23all_children23path_in_storechildrenurl_pathhome-decor/bed-bath.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:54 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ie8nvog9k12s0tsbtbnafcj1s7; expires=Fri, 30-Jun-2017 + 10:53:54 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + ol_catalog_product.info + + + + + + + + 383 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id383skuhdb007set16typesimplecategories23websites1type_idsimplenameCarnegie + Alpaca ThrowdescriptionWoven + alpaca wool. 4" fringe detail. Dry clean. Imported.short_descriptionA + luxuriously soft throw made of long-fiber lambs wool woven into a Chevron + twill.weight1.0000news_from_dateold_idnews_to_datestatus1url_keycarnegie-alpaca-throwvisibility4country_of_manufactureurl_pathcarnegie-alpaca-throw.htmlcategory_ids23required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:19+01:00updated_at2013-03-20 + 17:16:45price275.0000group_pricespecial_pricespecial_from_dateminimal_pricespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricehomeware_style121material129bed_bath_type184decor_type217home_decor_type191color14bedding_patternSolid'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:55 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=lfovticf58r63c7o5bbias8kq0; expires=Fri, 30-Jun-2017 + 10:53:54 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + product_media.list + + + + + + + + 383 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hdb007_1.jpglabelposition1exclude1urlhttp://magento/media/catalog/product/h/d/hdb007_1.jpgtypesimagesmall_imagethumbnail'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:55 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=fon17ru0j9bpo69igufsbcua04; expires=Fri, 30-Jun-2017 + 10:53:55 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: null + headers: + Connection: [close] + Host: [magento] + User-Agent: [Python-urllib/2.7] + method: GET + uri: http://magento/media/catalog/product/h/d/hdb007_1.jpg + response: + body: + string: !!binary | + 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 + AM811ecAUgsWAWWVVBF1oAAAAAAAAAGJqs4gsAWABYq1DWqAAAAAAAAAAGcZACxYABQq6tAAAAAA + AAAABjmAAVALAsqa3oAAAAAAAAAAASc43rGdZssAqBYG+gAAAAAAAAAAACZbMYgFSwsWC72AAAAA + AAAAAAAA54AoQFhd6oAAAAAAAAAAAABjOTcyVBUF60AAAAAAAAAAAAACZ1jEoKgt6UAAAAAAAAAA + AAAAROQFRb0oAAAAAAAAAAAAAACZcxYXpoAAAAAAAAAAAAAAAByyLvVAAAAAAAAAAAAAAAAJnm10 + oAAAAAAAAAAAAAAAAGGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//EABcBAQEBAQAA + AAAAAAAAAAAAAAABAgP/2gAIAQMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtiA + AAAAAAAAAAAAAAABdASQAAAAAAAAAAAAAAALoAEkAAAAAAAAAAAAAAAugABEgAAAAAAAAAAAAAC6 + AAAIyAAAAAAAAAAAAAGqAAACSAAAAAAAAAAAAAaoAAAAkgAAAAAAAAAAABdAAAAAMwAAAAAAAAAA + ADVsAAAAAJIAAAAAAAAAAAugAWAAAAIkAAAAAAAAAAGrYCwAAAAAkgAAAAAAAAADWiWACwAAAAJI + AAAAAAAAAGtCKCFgAAAAEyAAAAAAAAANaAAlQFgAAFgucgAAAAAAAADdAAAgAACwC5yAAAAAAAAA + LqgAAgCwABQmAAAAAAAAABboAAAgAAAmpcQAAAAAAAAFtpFAAAgCxYAsudYgAAAAAAACtApAKAAS + oAChFzkAAAAAAAK0AFlQFAASxZYLKSpUwAAAAAAAtUAAAAoAQpLKliyxXMAAAAAALaAAABYBQBLK + JYolllxAAAAAAFtLBYAAABKoAELFEsudYgAAAAANVRAAAAAAUAJUVBYXmAAAAALqgCAAAAABQAlh + UVLLzAAAAAuqAEAAAAAAKASwqFIwAAAALqgikssAAAAAAloCWWFlgmQAAAFugAJUBYAAAAAFBFli + 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 + headers: + accept-ranges: [bytes] + cache-control: [max-age=2592000] + connection: [close] + content-length: ['25054'] + content-type: [image/jpeg] + date: ['Fri, 30 Jun 2017 09:53:55 GMT'] + etag: ['"59429db3-61de"'] + expires: ['Sun, 30 Jul 2017 09:53:55 GMT'] + last-modified: ['Thu, 15 Jun 2017 14:46:11 GMT'] + server: [nginx/1.10.2] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + ol_catalog_product.info + + + + + + + + 384 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id384skuhdb008set16typesimplecategories2329websites1type_idsimplenamePark + Row ThrowdescriptionWoven + acrylic/wool/cotton. 50" x 75". Spot clean.short_descriptionA + rustic wool blend leaves our Park Row Throw feeling lofty and warm. Packs + perfectly into carry-ons.weight1.0000news_from_dateold_idnews_to_datestatus1url_keypark-row-throwvisibility4country_of_manufactureurl_pathpark-row-throw.htmlcategory_ids2329required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:19+01:00updated_at2013-04-09 + 04:32:00price240.0000group_pricespecial_price120.0000special_from_date2013-03-05 + 00:00:00minimal_pricespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricehomeware_style121material129bed_bath_type184decor_type217home_decor_type191color27bedding_patternpattern'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:55 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=6g9u3vrkhqioc3vg82n6srucl4; expires=Fri, 30-Jun-2017 + 10:53:55 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + catalog_category.info + + + + + + + + 29 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id29is_active1position4level3parent_id8increment_idcreated_at2013-01-25T12:12:07+01:00updated_at2013-05-06 + 04:17:34nameHome + & Decorurl_keyhome-decorthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/8/29all_children29path_in_storechildrenurl_pathsale/home-decor.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:55 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=htnnkherfubpnrt8f2bd2r7kp4; expires=Fri, 30-Jun-2017 + 10:53:55 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + catalog_category.info + + + + + + + + 8 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id8is_active1position6level2parent_id2increment_idcreated_at2013-01-25T11:49:50+01:00updated_at2013-05-15 + 22:49:33nameSaleurl_keysalethumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/8all_children8,26,27,28,29path_in_storechildren26,27,28,29url_pathsale.htmlchildren_count4display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update<reference> + + <remove name="right.poll"/> + + </reference>'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:55 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=g8ugp0f7q4u44n6lihsk81kpv0; expires=Fri, 30-Jun-2017 + 10:53:55 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + product_media.list + + + + + + + + 384 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hdb008_1.jpglabelposition1exclude1urlhttp://magento/media/catalog/product/h/d/hdb008_1.jpgtypesimagesmall_imagethumbnail'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:56 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=2jmv5ckjj463ttigqjcv4rcs05; expires=Fri, 30-Jun-2017 + 10:53:56 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: null + headers: + Connection: [close] + Host: [magento] + User-Agent: [Python-urllib/2.7] + method: GET + uri: http://magento/media/catalog/product/h/d/hdb008_1.jpg + response: + body: + string: !!binary | + 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 + Pbl2WW5WCScAAAAHq46z0qms0ZuZx7ZzvjygvfV3Y1YueWsTPZzw121rnrj03x7s6RZYsnPkAAAB + vrmzpQqErjrn059ZPLkb79eesdMdctoxmZ1zzL6NacO3O78/pURZKS+fIAAAHomuHooualJzuOnH + ty1w5l116x0zmbx0jOmbmcd6d64dcN46pZUsSs680AAAB07+XvjppFuaheevJ6pzz158NY16d53w + 6ZvVy0489bc8t9Ommpm+b0uHbYlhFhwyAAADffl1x0Srms7lzw6r5vTnXPjrl6t2y4uNce6efA9E + 49O9VOHW4m9LFhBnTlzAAAA9HPXP0VLLFllxry+jLn1vHlqeu3Okwst4Xbnnd1q0TPm9F8/o3nSU + ynmdeTQAAAONdZ6nLpMZ78+XTpyy6ceuenD0XHHXP2UXOmLedXWWLjOXo8++MB6/NrbWOkxvz1z9 + OKAAAHKK74jpy1rn05duOuYWdd8benaqUHndLJnM10eX0ee8xY78uuV59+M6zDOufcAAATmlV6vK + 78859nkdZxA1PTxz076aSxTHPDVa3LOHN6vHAu8+ryvRz59c4mt5znsAAAMYK9vj3q8p6/LZ387F + B3THfh17NXOkrObZnm3m7xz7ea8ws9XA9PmejzXpnTj11igAAHPNHq82rrOO3Lrw7ct8lg305unL + t01prKaYi64TVtnDPbj380Kdefp428+mN8/Vrm1rhkAAAxkL1vGezyW+nyOmvOB0z6Mc3o5eg0mm + VUmLefHvnj17edjfPtjW9c51zw76zu5XXLkAAAeieffTHTF1npz68umNHCdscvRbZLjUulVJz1al + Sy1Yxw9OfP6poEsi3ObvHAAABqd8dOPcLmgMvL7Oe+HoSwznc3KYukllk2JZmTWbOllhFlvPTXLk + AAA3y9WLx9NgSrGnk78u/Hrz62zNgmpaxRZNSqJrM5t3h6ZYQGuWreOAAAHbd8nqztSTUsrLh2x1 + 8vq5dYVm5ubqW8OzOmJtZbKZ83qzx63ZCVKYm14ZAAA78fT5++OglBLmyeb1yef00liSzZeVjOml + mrAnLcz24d7LkWVeeehiuIAAdcdbzdLclArzds9PN6sbXNIQK5b3x5d6VaSyZ4975/SsIUvHWs71 + y4gABfVnnntNCwXNRw656cPRw7SrEliaKZnn67WllXPk9mcOlsEms7TnWrfPkAAN9M2am0udLFlz + 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 + tkIp9vTPdpGRO014ieyaEexj8SlUbK3bxrVjf8W2Psm9kOyf4kFbSH0f8SPQxEHuhkhOnZkexfjZ + kXT/AGF2yWrQtIh2ZPxIL0Sdz3NaIbgj0LY9IbqIvxMv4+ILRwtUZ5f8VFaJTajRLcbMT+VGX8rG + qSZaSEuQ/wAmR3AqqZPbIrircbuzV0ZBSukhMi/lvLkX4jX9j2RnWhyb0KXEi92dsxp2TuyEKVuL + 2PZVD0QZ7G1R0LSGMv0ZHpI/KVH46GxM5EtsxIyO3RjVKxp9En6EPxHs7NMfZLZDcaJbin+xFjV+ + Matk3boi9k43Nkloxv4kXehaQ2VaG0z8oEVbonkp0o5eWlPcj0fk7JRqO8T+VkvnOhwT01DkRSWl + JR9pXpTrojGvk5StkdyRJ0yYvjEbqJ9VItsapCjrk0n2lNe3I2z2YldiRxVj5MUa2/Vi/pJ7Iyoi + 7Y+yiTGSlqhOicrISSQ52WXZSSIw9vG6sStiS/ElK3XiK0eitCF2cqZfjGRd6Hr9pOvCdDlbsg1W + 3KxOnZGau257Oao6hZildopwV+INrrd2N2qIOMUSfLvEttkdyNPZv05UKLe3WtfGJKTfiLpon+Rl + ZL0ThySJRUdJnH+zdRSUU7GkzivD7MHRJ0i2c2RbkyTt0pOlx8xeySFMbvx3M0KCbOEWyS3Rxoiq + dedURaiSmlHUXfjpHoXQj2T78weySpjXJWv/AEduqIri7JSsoSoopCGrFpUcklSU3VHJ+04rt5L6 + c29fYuzJqRNWzIzG/RP8ivZX9cWttfl5eiKvvC1VE9rz+KoT4qxu/svpkl7IkpcTHG1bapkD2ZNS + GN7T+1o6YjjY/MmZF78x7Rk0xOhpS6/9tOSkOSpMk7dmOr3J2/Mm2kit35asUdC11z8QaTtuVuyc + k+vs/wCIpf1aZkjbIsm1VeL2ZlavxJC39ii319Je1FIk6Wo7Z68LeiS+PmCuRl78W0WpdtU6/wDj + OTqvvZpwpx6GrIpr7FkHkZbHK1QnQ5ujm6OTIz1vxj7Mvf8A9Um11/8Akn//xAAiEQEAAQMDBQEB + AAAAAAAAAAABYAAQMSAwQEFQcICQIRH/2gAIAQIBCT8A+tjpZHnSXJU99O4uku008AuUQB2zcbES + dtubLpYgzcs8o8kHHzGM8I/kUaeKWIs8Vu8bp3plTLnyi+o7TLWnaK/CzKGmmnURQ2iZfsrZGayV + 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 + UFFFHk9nmcZSNxJU0/gc7xrbo5l9Ev8A/9k= + headers: + accept-ranges: [bytes] + cache-control: [max-age=2592000] + connection: [close] + content-length: ['69281'] + content-type: [image/jpeg] + date: ['Fri, 30 Jun 2017 09:53:56 GMT'] + etag: ['"59429db3-10ea1"'] + expires: ['Sun, 30 Jul 2017 09:53:56 GMT'] + last-modified: ['Thu, 15 Jun 2017 14:46:11 GMT'] + server: [nginx/1.10.2] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + ol_catalog_product.info + + + + + + + + 385 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id385skuhdb009set16typesimplecategories23websites1type_idsimplenameGramercy + ThrowdescriptionWoven + cotton. 60" x 72". Machine wash.short_descriptionWrap + yourself in this incredibly soft and luxurious blanket for all climate comfort. + weight1.0000news_from_dateold_idnews_to_datestatus1url_keygramercy-throwvisibility4country_of_manufactureurl_pathgramercy-throw.htmlcategory_ids23required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:19+01:00updated_at2013-03-20 + 18:19:33price275.0000group_pricespecial_pricespecial_from_dateminimal_pricespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricehomeware_stylematerial125bed_bath_type184decor_type217home_decor_type191color15bedding_patternSolid'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:56 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=tep5b2i8kfns9js0596jbuhpc4; expires=Fri, 30-Jun-2017 + 10:53:56 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + product_media.list + + + + + + + + 385 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hdb009_1.jpglabelposition1exclude1urlhttp://magento/media/catalog/product/h/d/hdb009_1.jpgtypesimagesmall_imagethumbnail'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:57 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=vcmorleafiueat5fm01817h3k3; expires=Fri, 30-Jun-2017 + 10:53:57 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: null + headers: + Connection: [close] + Host: [magento] + User-Agent: [Python-urllib/2.7] + method: GET + uri: http://magento/media/catalog/product/h/d/hdb009_1.jpg + response: + body: + string: !!binary | + /9j/4AAQSkZJRgABAQAAAAAAAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz + ODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2Nj + Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAI1A1EDAREA + AhEBAxEB/8QAGwABAAMBAQEBAAAAAAAAAAAAAAIDBAEFBgf/2gAIAQEAAAAA/QAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzoAAAAAAAAAAAAAAAAA50AA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + DgAA6AAAADldXZcnIjXLseR7XbzkJc7KUU3ThCfXOOu8j3sYxhCNU5RlmRrvZNUpQo2Rlbd2y6QA + AARw5Yy7kshZzi+utGu+ynkkatneZ9EbI8pshXzVnlGeiNNtGjJZZLBLZlupqnKzBrrpjqhLLZdT + ZZOnvperaAAAhW8ujlWjJ3Jtshlstx3XRhfQzaerbs3b6qqNVWzNTbOhGvXo8zbXym26MITu4szd + 5j21co0w5TenOuMqPS3ex0AAFWPHVlr0VasejPOcO5Z97yyc45e1apa6o5dE9WOjmnJKN1VXK9jL + tZ+LO0WX1V9slXyp2iy+zDzRLmitmn6D6K0AAOeNXi1ZO35rc863Z25LKtEVcqavQhTZdbj5pz+l + 5VOylTex3UbLqULK72jHnnulmhGFmvJVZGNuzB6Hn5/Us86yWP0rva3AABz5y7Hp8y3XGurb5Vkp + 4578vZ0xlynVDTn15rKblvn235tGSzRmsybbK4W1dsqxelgNmHfLPXp7TZn1013qo6KbKaubNHr+ + mAAHPnqOb/Nhphmusz8r5bTfbCqWe+yyrz56+6Izv8/saN9mDN6tefb5VrVKtTshGWOdnfN9Sym2 + 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 + cShKPZU29pQ5py2x5fzLpqhyu+dOqNHLYz8z0O0TjLJvnCN2G2zDL0qI0921z5kldkso7bVopnfi + tng3s1/PQh7d4Cvz13m1z5NOiRDVVPmezsew0VTjGqu3uPP6VvZRqyeb7POVTu83Xfiv1wrhh9RT + HvbOV97dRDUh3z9Gqmd/m+tRn5b2mPc+/b6WkCvzGijzdtEL4zrhdHt0s1Wa+6yq6qjbXCGXYzef + t2zpsjXl1Vdp1cyehfk256I9x6JSlh9CqHc2j0/I112aMcb65XU4/R5RKV1FPcPqW7fU6HPOp7f5 + 1c6ZXdhVRo211TjWtnTVfVolkjbyHKYUejoVU3RjrhRfHF3Vi9bO4rlGcKdFFna4a8ujNbZm2Vyw + ejXZzsIV6pY9WK/Rp9joUeTl9GrzJba6JSlCXNOOxfllZC/ydde67BOPO3Z7KrNWedcrct0YVX47 + /Q8rfVm2Qo2dz21XZFkssoTujfj1Zr4aKbs9tduPrQvztfs2Dnm4M3qU+Vr5ZXq7n5dG6u2vmfVX + ONWee2qNkO1ZrN1EdEIxlozyhfDmWGnzvSspnCjVRbCOiMZrKeIzuzX1SqnO3ztWXVTHu7NolVr9 + DSM3k492zzvO3O2TmotlRZOcKc8rp1Qp9CiELOQuzaJx11+fshZi9HN2MId0+X6lMJxzz5bZmjvq + z36MtC27Vjq0cpnOzJLtlmC9X6VV/duseHh76vPMshfdU7KNkY85zPbyV2e2+NdNV9F2bfjuO9rv + qvjKvtUq6d+L0cXbKcuiMdOTX2Na3JovhHbmyWWZ7mW6cpR7Ku2U4S2+h0+Zp9G/FKqbse12XSpu + rqvhVdfmpvtqj3DpnyU+5cG2dOpXprnGnllMZRaq9GXl+CdvbLPO0aMNW3mbVr8ezXLz7ZVaENVU + qbZS5bTs9Xp//8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAIAQIQAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAEoRZRKEWWFCFgUJQAAAAAAgLLKlQAACwAACwAsUAlAAAABAAssAAAAAA + FgAKSgAAAAEqCwAAAAAAACwLLAqWUAWAAAJSWAWAAAAAAAAABZSUCwAABKgAAAAAAAAACyyyyxQB + YAAAlgqAAAAAAAAsLAFAACwAAASywAAAAAAAAsACyxSUAAAASpYAACwAAAAAWFiwWCgAsAABLKIL + AAWAAAAAALAUJQAWAAACUSwAWAAAAAAACywoACwAAACWWBZYFgAAAACwAWFikoWUgAAACACwsAAA + AAAAWLFlALFQAAABKJUAsAAAAAAAFSyhYWKgAAAARZYsWAAAAAsAAWLFlACkAAAAEogLAAAAAAAA + CglAqAAAAJULBYAAAAAAAAqUACkAAAAEsqAAAAAAAALAsUCVYqAAAABAAAAAAAAAAKAAWAAAAASo + AAAAAAAAAsKALLAAAAAJYAAAAAAACwCwoAsAAAAACFgAAAAAAAABQAsAAAAAIAAAAAAAAAFigBYA + AAAAgALAAAAAAAAWKAAAAAAEqKgAAAAAAAAWLFAAAAAACVAAAAAAAAAAFEoAAAAAEAAAAAAAABYs + oAAAAAASgSkACwpKAELABZQAAAAAAAEoAAABAAAAAAALFSgAAABFECyywAAJRKAAAAACxYoAAAEA + AAABKlBKAAJQABUFAAAARYAAAAAJUUCKAAAAFlAAAAiwAAAAASgAAAAAAKAAABAAAAAASgAAAAAB + YFAAAEAAAAAAAAAAACwABQAACAAAAAAAAAAAAWBYFAAAIAAAAAAAAAAAAAAUAAAhYAAAAAAAACUA + AAAoAACAAAAAAAAAAAAAABQAAQAAAAAAAACUAAAAAoAAIAAAAAAAAAAAAAFhYoAAgAAAAAAAAAAA + AAKiooABAAAAAAAAAAAAAALCygACAAAAAAAAABKAAABYssoACBUAAAAFgAAAAAAAAFigAgAAAAAA + AAAAAAAAAUAiwAAAAAAAAAAAAAABYoCFgAAAAAAAAAAAAAAAUBAAAAAAAAAAAAAAAAssoCKgAsAA + AAAAAAAAAAFQqKCKgALAAAAAAAAAAFgABYsoIqFlQVALLAAAAAAAAAAAFgKH/8QAFQEBAQAAAAAA + AAAAAAAAAAAAAAH/2gAIAQMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAWAAAAAAAAAAAAWLBYAALAVABYLAAAAAAAAACwsACwAAAFgAAAAAAAAALLAWWAAs + AAALAAAAAAAAAAFgWLAAAFgAAAAAAAAAAAAsCywLAAAAAAAAAAAAAAAFgsWAAsAAAAAAAAAAAAAA + sUgAAAAAAAAAAAFgAAAVKikWAAsWAAAAAAAAAAAAAFSpZYsLAAAAAAAABZYBYWAAABZZUsWAAsAA + AAAAAVBYWAWAAAKSypUsqWWFgCwAAAAFgWAKRYsAAAUBKhZUsKgAAAAAsLCxYAqBYAAApFllQWWB + YAAABYAAAsAUgsAABYoJZZZYsAWAAAAACwBZYUlCWAAAFlSxZZUAKgCxYAAWABYUQVKgsAAAKSoW + CxYLKgAAABYAFhUAssLAAABSUlJYVLBYAAAAAACwAsWFgAAALLBUsAsssBYAAAAAFioUhRAAAAsW + WWFlgBZYAAFiwAABZYKJYAAAALFQAALAAALFgBSAKgUEAAAALAWWAAWWAAAAWAsLAsAqWVAAAAsF + iyyyyoCwFgLAsABYFRZZYFIsAAAAsKgApCpYsAAUgBUBYpLKAgAAAAsVFgKEUSwspLFBFlgpBYKE + oCAAABYKlRQhUqUIqKlIoiosUQVFJZQIAAACoqUhQAlIAAAAAAAAKgAAAKSkpAAAAAAAAAAAAAAA + AUEAKgAAAAAAAAAAAAAALKgAAAAAAAAAAAAAAAAKEAAAAAAAAAAAAAAAABQSwAAAAsqAAWFgVAAF + AQAABQAASgAABKAACUSiKAAQAACgAAAAAALAAAACUAAQAAFAAAAAAAAAAAAASgIAACrCwAAAAAAA + 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 + pWHuijJSpaq9SF+Ds6nN77GH2jKXCfCKZqnk1X1FfhdibPkWw7uWNXbKbUr4KR3NhLInVTTKO0iG + tmWUVfuVQnT77lESuTS7Pcppj2O0UulLBQobqWSb9R0w49xOCqry07rgrqeqhOyR6bWRXT4WztI/ + +0dPiZW4hMatSngvpb6Gh6Zcr3KHdnZ3pRXZtfuUVRQyq11IrQin1RsU+Ur8WlOWyqyj0lVKldCt + WdMCqshLS6eSlqrmTairJEakPErKKq70LcrE81cmmKkjKO1qimolVJlPhjqUNKroVJy2imrGzQ9n + kSmlREnzI1XfJVka8XUqVtLKLqp7dSiq1WJFtBqiod4RGqP7pGtynjNRd9oqShSlJSphqzKZRWij + ZHaJxGJHSvLbBU58LKqr3uVVaXRG3JOmtVcclSnSnGnkpiEjT4V1KuolNSQ1uYtt7FG/PwaGhSvy + NurU/wDnUTtWyMDpvTyUumaympp7FdElKdNRmUrtjz1G51Tgp2+bgTldR29ium2nkoWVyWcM8tdE + bCqmlPYmCit00tbjoapfQdnRuOHVt9CEnSxqXbcTl9LmtNyroVU6lgvMO7KrUxYTalEeGaclVGET + pnoVRnZlSxUbrgTi6n8HY0q0CFiMyZfuOlSyl6k2Kp6V7FS8EZK6lNsMVcxUUWb59yhZTydnTpXU + jBtQypJQngczUiqhSVW7ScnZqaWhUyki1VV+Rt5G51LI0nKsaZgXhqsS3OVBpmSmm+l/ki7W5Qkk + /c8udyISwjHZuOVcTlLkXpK3Mt4H+Spbs05KXpsW022FVK6rdGVBTh/CI3FI6nJTeqLwadSq2ZTR + CG4b2E4X+omsjdjs7RGRpttbMXn1VHqZq1av3FV4nmCX9CvxIcVWKqYdM3Ozc+5Q1qT5KLzQhPSu + o6pc4Z20Qp/JdVSdo5qasVvTjYxMmqZT/BN6tOGUQkyG85RRZfgaUzv7FXhpjctDSwbpXHLSgfic + KGRlLJZVKRUuGjS9L5ZEVVoca75HVdi8PSCnjElNUt0+ZmpzTjUNTT7FG6WRNamlcT+bYptf8DxJ + Hg1jUNQYqEonkqUKPfBVbxVXkb8TWxV4aVwOmJfA5pdxS0pz0H2eeRU/UoXnFZvqT9hXlFFmk7r2 + KXArQJzTSN44HU85gb1e58r3sdEVWmMF+iRx8Msmy2QpUjnTYzNVoO0sxOPr/wAY64/3E9SaWw4d + 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 + headers: + accept-ranges: [bytes] + cache-control: [max-age=2592000] + connection: [close] + content-length: ['69062'] + content-type: [image/jpeg] + date: ['Fri, 30 Jun 2017 09:53:57 GMT'] + etag: ['"59429db3-10dc6"'] + expires: ['Sun, 30 Jul 2017 09:53:57 GMT'] + last-modified: ['Thu, 15 Jun 2017 14:46:11 GMT'] + server: [nginx/1.10.2] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + ol_catalog_product.info + + + + + + + + 381 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id381skuhdb005set16typesimplecategories23websites1type_idsimplenameTitian + Raw Silk Pillowdescription20" + x 20". Raw Silk. Hidden zipper closure. Interior pillow included. 100% + polyester fill. Dry clean. Imported.short_descriptionAn + exquisite home accent, our bazaar inspired raw silk square pillow is a statement + in luxury. Interior pillow included.weight1.0000news_from_dateold_idnews_to_datestatus1url_keytitian-raw-silk-pillowvisibility4country_of_manufactureurl_pathtitian-raw-silk-pillow.htmlcategory_ids23required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:19+01:00updated_at2013-05-16 + 20:17:56price125.0000group_pricespecial_pricespecial_from_dateminimal_pricespecial_to_datetier_priceprice_id47website_id0all_groups1cust_group32000price110.0000price_qty2.0000website_price110.0000price_id48website_id0all_groups1cust_group32000price100.0000price_qty3.0000website_price100.0000msrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer2gift_message_availablegift_wrapping_availablegift_wrapping_pricehomeware_stylematerial126bed_bath_type184decor_type217home_decor_type191color19bedding_patternSolid'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:57 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=45bhlb1idduamllnpvnhc7an97; expires=Fri, 30-Jun-2017 + 10:53:57 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + product_media.list + + + + + + + + 381 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hdb005_1.jpglabelposition1exclude1urlhttp://magento/media/catalog/product/h/d/hdb005_1.jpgtypesimagesmall_imagethumbnail'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:57 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=bnabrcn65ks35ev9866ipuihn0; expires=Fri, 30-Jun-2017 + 10:53:57 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: null + headers: + Connection: [close] + Host: [magento] + User-Agent: [Python-urllib/2.7] + method: GET + uri: http://magento/media/catalog/product/h/d/hdb005_1.jpg + response: + body: + string: !!binary | + /9j/4AAQSkZJRgABAQAAAAAAAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz + ODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2Nj + Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAJzAv4DAREA + AhEBAxEB/8QAGwABAQEBAQEBAQAAAAAAAAAAAAECAwQFBgf/2gAIAQEAAAAA/oAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAx8L29+nTWgAAAAAAAAAAAAAAn5Tv7NVd9Om9bqwWFAAAAAACOfPnzzz+tQAAB+b83r7t + 70A1Etkutaq1daupaASZZRJzb4Sedz4dby4+f9N7QAAB8TwPVt03aKKEqSYdJpK0tamdTlZjN6ce + XTtM8c955+l487x+fv8Ab6AAAHzvj577101bVVYoXOU3ZVJUrMJZlZMzprHNMxjny8/n5/Q/YgAA + B5fh+bv06dbdKtAUxNaolgsMwTKpEW4zjM5Zzw8/LX1v1IAAAcvz/nvTp6Lq1VqWKMt1CItQyRMy + pFysxnOPPjPLnL939AAAAE/N8ue+3a71TRZbnQmrEAAykkZpFzEznGOHLOOWp+k+0AAAD4Pk5dOn + a61popZSwUAIImYZsQkkY5ThzznG5+o+kAAAD43i8+unourq2qFCiLCoESSSCQSZzOeOXLGM73+p + 94AAAPm/N8zffpdW21RQCUJUBMxISSpJjMxzxyxjGt/rvYAAADyfG8/Pt16a1dWlKUAEqEqSJJEQ + ZznOcYxw55duf7T0gAAA5/nuXLfbe7u6sqhZSyiAgZhJEiGc5znOeXHni+nz/uugAAAJ8Hyct9Om + 7u6pS6lISiFgiQZRESZznOZjnx55vd+2oAAAHyPncNdd71d6pZbSwShKQJCSREZzJjOZjnx55319 + H7AAAAB875fl1vpvWtXUtUWhKBAQhJlJEmM5znOOfLnnv39H6sAAAB5/gea9Om96u6qqUIUSwECT + OUjJjGJjOeWeU7er6H6AAAABx/Peeb6dN61q0qlWQsCpYRSTOSZzEzzzjnnnnnPR6fr/AGQAAAHL + 87wzvW+u7pWqpVgWEogCTMjOcIznGOeMZ5z0+j7/ANEAAABw/OY56116burotFWUBAEWSSSM4ySZ + 555csZzr0d/03qAAAAcPzvLF316autVdC0FgQQCRJGczJjOc558eczv26/W6AAAAcfzfOTfXpd21 + bVUUAQhYkSSTMiZxjGcccTO/X6P1VAAAAcPzON4123d6qrVtoAIIJIkZucwznHPnM4xnOvV6/wBS + AAAAc/ynXHPfTe+lq2y2hQAIJESZZzEmccsTOcTG/b0/WAAAAE/O8MY3vpvWltstpVgBEQkpJJM5 + kmeWMSZxnPb19v1IAAAA+R8/HHXXXTVtWy1aoLEEEIiSTOZjOcYzGM4z29Xq/TAAAAD5/wAzz8N9 + d71bbVqrKoEEQgkkkkzjGM4kznOc9PV7/wBGAAAAPL8Pjz103d3VppaKUCJCxEiMxM4588Zywxlr + r7/1IAAAA8nxfPje9a1rVVbSVVokESoiJITOOfLGJOcmddd/Q/TAAAADx/E443vdt2ttWlWKCEip + LJEiZmMc8c8zGZOnXPt/WAAAADwfE5Te923VtaWlEBSRYhERJnOcY5YxmZjpc/S/VAAAAD5Xyuc1 + vWrdWtNUUlmiSwiWQhEzM5xnlyxMyGtfS/UgAAAD5XyOV3vVurqrbaqoUQRIEEkkxnOePPnmRLdf + S/UgAAAD5Hyeeultt1bbbVpQBEIghGUxnOOWOeJE1dfR/UgAAAD5Hyee96pppqrbbQixUgkUSySZ + znHPljGZI1rp9P8ASAAAAD5Px8b3qltt1VW2gQIrMoRJJnOefPGMSTNu+n0P0wAAAA+X8TPTpS21 + dVZatLEWVCRYQkZzjlzxnLOYvTr9D9IAAAAPlfH576aqrba0UtlBc0iQgJLiY4YxmXPPNvft6v0w + AAAA+V8XGuu7S2rbbYqUKhFkEESSY44xiWc8a1136v1IAAAA+V8SXfS2ltXS2UUEqQkVBBMY54xn + LOM61vfr/UgAAAD5XxJd26ulaVq0FFkEEBEJnOcc5MTPPN1vr3/V0AAAA+Z8PG7WtW2rbdWpYWWK + QkBEJmZxykmefKa312/X7AAAAPnfBzqrbq21q21pBFi2IIghJMzPOTOefKXr0mv13UAAAA8X5xul + jWrVutFpYJSBEWJLmJMZmcc8c8667b/VegAAAA8/5jHfViJdVV1dUWUCLIgQkiTOc55cs82uu0/V + ewAAAA5/lc67bksytLLq6W0SWwIhCJIuc5xjljGZrtpP0/vAAAAJ+W4uvS0kDUVrWqEVARCQiGef + POMTHOa7XW/0X0AAAAB+Z8bW+nS2RChdatCGRYEM2RJz55znM54je99/vfSAAAAH5jxxd9+mmYaC + TV1ohSWEiyIkkzjGIznnjK77b+79cAAAAfl/Ju8p279ES6spE1rUlCCAyTMznOczMzjOM3fSz7X3 + wAAAB+e+f168uLt1o1pVEaqAgkCRM4zJmTMxnOc73jE/RffAAAAHxvk30a589bpbatKBCsrELJJM + YyymZOeJi9OXOdf0X3gAAAB8343Pp3rKLbSy2ghLJSBJJnnlJM3M54zjpnjN9v0v2AAAAB5fgc+f + fvqSFtpKs1CIEIizMmMoxImOec51xXp1/R/YAAAAGPzfHF69dBbSAokFiIlTOZnJMyM4xjMy2737 + 32gAAAA+B5OeN99WGlthKqSS0iIiZmUkSMzOM88Gnftf0H0gAAAA+T83nzdelGpq0QqMqImYiJlG + SM5zlz5tJ6PRr7X1AAAAA8Xx+HG9etLC6ogTNaZMzNSucZmbqTMzGecTO/T6PpfcAAAADj8TzcL0 + 6dCySW0hCLblM5llszmTK1MSZsziZy36fqfowAAAAnxvHy5dultEzGpUQhWbM5lVJmSFZkmbMzOc + 5b+j+voAAAAeX81vO+xbZEiJAhZJIhTOUiVJMyBnGJr2ftNAAAABz/F+f6U9GpahJmTNKzSRCKsm + ZIjRnOJLrWOfO7+t+pAAAAHL5vzfj69Ho7biwRMyKRFykItSSRItScstdLOeNT2/pvVQAAAPF8vl + y82efq67ZQhJLAIiEspIkiFHPDe7Mpj0ej9XsAAAHh/PY9KZ43oIlhEstiEiEKhIjJLpnnrepIzn + WP1H1wAAA5/nufh6dOvTHAqEsIAiJckLmkiJMrbJdIGfF7fT+y0AAAT4Xmnn8no5umgiGZVgCQhC + SIhExnV1pbFjn4+vpn7rsAAAfL+SvDzN+flN9OtzjWeXl8vLXv8AX0szVkiJmY58PN55rWufG9tO + bp37VSD1+36X6PQAAB4PgY4ScfJ8+MS8uC6RZnp058rvepnVmVt316dN61vp16de/TWc4zJdXW/T + 7/T16aAAACEzw8Xl8/DjjEVdW2SZW61d76b3vWtXVt1bdW2qW1VW2qAAAAEZznMEIKKKVSlBQoKF + BQAAAAAQAAAAAAAFAAAAAAAAAAAAAAAAAAAAP//EABkBAQEBAQEBAAAAAAAAAAAAAAABAgQFA//a + AAgBAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ5/0+n01qgAAAAAAAAAAAAAA8qbVd73u7UBKAAAAAAAz + jOcusAAAPO+GtLQWWwBrWrbTWrVACSISZmsZziZzUPS+gAAA4uWbpaAUAhKqUW2prOZEWRqJNM1k + j6elQAABz8OdLVWUCyyoFAAgEAWQhJFv19EAAAPn52LbVCgKhLQACAlQBEiIXXR2gAABPLwt0oKA + BQQAAQIBISWW3r6gAAAeXiLq0FABRAAIAICERFW9vQAAADz/AIS2rRYoAAABAEBAiIrTv+wAAAOL + myulVZQAAAAgEBLCERVvofUAAAHNx4W6KKAAAABAQCIIlNPR+gAAAPl5+ZbaVRKAKQABBACIIFr0 + tgAAAnl5ltqhQAKIACAggQIFr1KAAAB5vzzbVUKAAABABBBAgq31AAAAHFzZW2qBQAAAECAhAIWt + +kAAAA5uPC20UWFAAAAQQIQILb9e8AAAB8/NytqqFAAAACEEBAQtvT1gAAAMeZktqqCgRUKASkEE + CCCrevpAAAAZ8vJbVChZQAACAgggQVb3fYAAABjzMltKoAKAAIEEsEsEKW+h9AAAAGPMzK1RVAKA + AgCAhKgAtvpgAAAGPMyW1QKFlAASwIIAgAavpgAAAGPMyW0oFlKlABAgQBLAlla16QAAABnyrI0q + gFAKEoggIQAAa16QAAAA8zGVqqAoLKRUsIAIJYAC3fogAAADi5pGlUAKBSAAgQEABb9PQAAAAHNx + 5zbVFAUBYAEBAEAC3694AAAA+PBmNFWKFAVAAICBLAJS3fogAAAD48GZVKFAWUqAAgCBEKlLfr3g + AAAD4cGVUUoFAAAgJYCCFFX694AAAA5+HKqUCiiFhQlgBLCBFRVfX0AAAABycmVUUULKlABAixYE + CBRfr6AAAAA5OOKoooKJQAgAIEEBS/X0AAAABx8kUoUKCgBABABEAqvr6AAAAA4+SKoCigWAAAIA + glhS/bvAAAAHHyRSgUUCwAABBAAlK+voAAAADk45VAKAUAACLAEARVv17wAAAByccWgKFSgAAIAE + AIq3694AAAA5OOLQKCgAACACAEsVX09EAAAAcnHFUilAsoAQAAEAQqvp6IAAAA5eEoUClAAEAAIA + AW30wAAABy8UUVKClBKAIABAAi1Xp0AAAA5+CUFlCiggKIAAgACl9LQAAAB8fOlAUFBQlIAAEAAK + X0dgAAAHz8yWkCgUFJSAABAAFU7/AKgAAAE8mNAhQClIAsAEAAFo7vsAAAAPKwtBKAKoSwAAgAAU + O77gAAADzPkWqgAKoESxQCWBFAFXs6AAAAB5nzhaAAFAAAgAABVdfSAAAAPM+SwtBUohbAAAIAAF + U6esAAAAed8VZqhQqCiAAIAAAth1dYAAAA4uS2yKKAohYAJRAAAUHV1gAAADm4ZdAABYsAABAAAU + HX1AAAAD5edlqgChCosACAAACwrr6gAAABPLzF0AWFRYAEACWUAAW9XUAAAAHnfFGqAFBBKEWAAA + AFru+wAAAAcfLmW0FlUgBCoJQAAAKvX0gAAAB8OHMWgS1UIAsAAAAALejsAAAADHnYjShBQgAAAA + AAC/X0AAAAAcHxzNUECiAAAAAApAb9MAAAAHz82S6ABAAAAAABQRfUoAAAAZ87EWhAAAAAAKQKIH + 37wAAAB8+P4W5mgAAAAAWWLFEoQU7/qoAAAObizGo0RQAAAohQAAgFa9HQAAAOfgiLLoAAAKAigA + ihAUdnSAAAGfNzJVzaBUKQpKAEVFioFJRLU16VAAAHn/ACklFAEKAAVAAFCFlRWoeloAAA5eMhSx + FDWtPnlKABV1vSJdMy1nMIU1ve/tQAAD480TM1sVrSAXK6kktktKIqi1QIpbatAAAAiSTMhBUKBS + lKBQUAUClAAAAAiIAAAAFAACgAoAAAAAACWAAAABQAAAAAAAAAAAAAAAAAAAAAP/xAAZAQEBAQEB + AQAAAAAAAAAAAAAAAQIEBQP/2gAIAQMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+l8PnjEgAAAAAAAAAA + AAAAPZz8JEznGZlAFgAAAAAAF1vWtXiAAAD1Pv8AL5M5gCFhWcwhJmSwALapW2fpb9W/pib1fK+Q + AAA7+t8sM5ggSksqtMosRDNsu5dWZ+m8YX6X5vrmfTTWsePAAAB0+jfnnOZIQioE1SQJUVLSlFtx + NaW1rWtXPw8oAAAPr6f0xnGIkIBAusyWKAKqXSKVGrqt23Uzy+cAAAGvV+jOflJEIAi2SKUQVQts + UUat1uqZ4eIAAAHrfTU+eJmQkARUFIKlKVVSiqt3dWmXn8gAAAPS++85+ckiQIABFEoVVKKVVurq + 0zPN5wAAAd/T9Jn5SMxBFgIVKAFVVFKW2260MvL+AAAAOvs+ifPCSRCAAAAKtUVUtaq6uhmeV8gA + AAfb0fpc4zMyQgIAACpVstUUW2226Jl5PzAAABr1d6znOZmQIAgBYKFpVUpbVt1SY14sAAAA9T7a + mc5mZECQCpQAqhVKW1atukZnjAAAAO7r3M5zJmEWQQVFlAFqWqKtq1bdJM48kAAAB1dv1mczMklk + BEUhQBQW0qratXSsZ+XmAAAAPr6f0ZzmTMgiBFAAFBbVWltW2qzjl4QAAAG/V3ZnOZMoIQFSksWU + AtqrVWtWhnHHyAAAAN+ruyZzmREQQAFgoBbVtotttDOfP5wAAAH09XVjOJJIgIgAqUBVql0KtttJ + jPm/IAAAB9PV1qTGZJERLIACgsopatoq22rJieTAAAAG/W1bnGZJCIQIAKBSqtVS21aJnHkgAAAH + 09arMSZhEIiAApZS0qmgttWiZ+flAAAAGvYXWczOURCIWAAUKVatFXRVJjPkgAAAD1fprWc5ykRC + EAAUpSVatFtoqs4x5YAAAA7urWpnMkhCEICVQFCrVVVtFVnPy8wAAAAdXZ9N5zMxIhCCABShZatU + tqilmPj5oAAAA+3o/SzMkkgkQEAUoFKqlttWUsk+XlgAAAD7+h9LMyRkiQCEFCgpSrLbbaUTM+Pm + gAAADo9DdzJEiRCCLABQopVVbbVDMfHzAAAAB1d+rmZJEREIUBFWUKKq1bbQZPh5gAAAA7ezVzJE + iIkCVLBQKoFVarVoInw8wAAAAdvbqSRJEREEVAsooKFpaurQJPj5YAAAA7uzUzBIkJCEAsoooUUt + atoInx8sAAAAd3ZqZgiIRIgAFFAFqrbbQST4eaAAAAO7tuZBEJCJACgKBS0ttUoknx8wAAAAdvbr + OQiEgQhKAFBRSrqqUSZ+HnAAAADt7dTMghCQIAihVAKVdVRSZnx80AAAAdndqZkEIRJUVACpaAUq + 6tCky+XlgAAADt7rJkgiIgCBUqy1FALq1RUSfPygAAAB2d9kiIgSQBKiigChatpVIzM+SAAAAOv0 + LlCSxBJAAJQoKCqtpVSTN8iAAAAHV6FgiIREMqLFQKFAVVpaqTNnk5AAAAOj00gEhEhAAKlKShSq + q1UzDy/mAAAAfT1rmBTIJJKQACqAqhVtWMw834gAAAGvYrEFEAkRBUUlUClJVtpYwPO+AAAAA9nT + OSKCUSSBULFKFShbVKMjz+YAAAAet9SZyKBKkkBSgAUKtKUJM8XKAAAAPW+omclEBUkAlBQoUqil + GZOPkAAAAHrfVNM5yCLCkkoRRQKKVRSkycvCAAAAPU++c60zmLEQFSFEooFLRSlEiuPhAAAAHf2T + 5rqSBBAIoKlWBS0oUWS1OPhAAAAHX3aziKCAgRQUAUqgpVIpOHjAAAAH29O6+eCkIAQqgKBRRQtE + tTPDyAAAADXrarGYBCggoCiwpbCiqFTM4+MAAAAPT+11nEBEUIVSChSgFFKUzmcHOAAAAHb161M5 + CEAChKKoAKFKsJmcXKAAAAHR371M5AJAoVEpVgUoApRZmc3AAAAAG/S+mmJAUgoCFi0QpSWUWUoZ + +HmgAAAA9H7a184QWkKARRQBUUKilD5+QAAAAD6+quMiFCgssFABZRQsAVcePAAAAA16+8vmsBSg + BKFQFAChFU5/MAAAAG+zq3LPnKAKAAoEKABRLKXHm/EAAAB0d29alzhKALKCUAAAAUlBMeVAAAAd + HpXNtswAAEoAAACkLCykXg5AAAA16l+iTOrLAAAAAAWKAAipZnyAAAA9L6tbzUECgBFiwCgABYAQ + TycgAAHX2pq2WkEomZrSAACZxCpLoy1qgJnHz+fNAAAD79ltupkJnKgS3ObaCCJSIRmJQsEznMkA + AAAW63rVtKQCAiJCECBAEIIRAAAAAKttAAEACACAIAgAAAAAAAAoEAAAAAAAAAAAAAAAAAAAAAAA + AAP/xAA5EAACAQEFBAgGAgEDBQAAAAAAAQIRAwQQEkATICFRFBUwMUFQUnEFIjIzQmEjgZE0U6Ek + YGJwkP/aAAgBAQABPwH/AOJUnSLfI6RNviyNtKnMVvzQrWLM8eZVc/8Atp9xNUkWc+ZXc4+DYpzX + 5G2l4pCtv0bWJtI8yq5lexr5ZU2kPUh29mvE6TDkzpcfSx3p+EUdLaarFUFxVVp7ystqzu4kJFSp + Ur2NexzNeJtJG0ZtXyNt+jbLkK2i/Bm2XJm1RtImePMzLmsKrn2lVzM8eaM8eZtIeo2keZtoczbQ + 5m2hzNtH9nSI8mK8J/izbx5Md55RNtN8h2s+ZtZ17yr5khcBYMckTtPAulejQrp77H50x9xFiZXU + MXZceZV8zNLmZ5czPLmZ5czaSHOXMzPmzjz3EsGsFhRch8O4bKCGMiMZWhmJzJS4llHNNLmRWVJL + w097VYpj7iL367ldAtX3CeDxqN4VMxUkxzHLC5qt4gv3qLwq2T/RTgzuE8F542VGyTHg0fDY1t68 + lqLRVs5L9YS4SFhF+cMeDHg2PCgz4Z+b1L+unItO8WEeGFfN2VGSHuRQz4Yv4ZS5vU2qy2s/cngm + IWjoU8keLx/wf4IkkXD/AEy99Te1S1rzQ1wGIQvOHi8Ghr94LC5Kl2jqb4voZLuGIQvOWMY8KMo8 + bp/poam8qti/1xE+JMqIWl/ryZjxWDfEu6pd7P21M1WEl+hEsELztjHgu/Br5iCpCK5LVSWWcl+y + WCF5LUrpHg8UIo66u8qlrXmTwWC3F5qxjxQkWKrbwX71d7XCLJ4J4Lzh4PciULnHNeo/rjq7ZVs3 + +iYxCF5m994PCJ4Hw6P8k5frV2v25Eu8eCFqOPkjwgPuPhy+Wb/ertPty9hj3V5q8KlTMPCJ4FxV + LD+9XaulmxurHuIXmr3HgiCHwLsqWENXbfakdw9xeaPFj3EQJqrQlRJLV2v22S791eZPB4vdRBne + 9Za/akS79xdpXVf32zHuVZXFIiWbWZayarBopVlB4LzRjxY9xESFdovfW2scs3g1gheZvde5E8Cx + +9D31t5j85ElivOXjEXcWH3o++tvS7mLgTeC8ye892JFlh9+L/etvH2yTGsF5ix9oi7rNax99bef + tDGygtBXyJj3XuIWF0dbeK1t5+3/AGMlvry1jHhXeWDZceN5jrb0/lQ2PVf3qmMe7UrgnjceFvHW + 3zwweK0dNex9nc/vR1t870SeC80Yx9ldOFtH31t9+qPsPBeaPtLoq20ffW3z6l7DwWlqVKldYxj7 + FIunC2jrb53oeC1v9400b7NYXT70dbfPxHgtFUrhXWse/wD3uIoXRfzR1t9/EfDBeZMeD3GPcjhc + 3/1K1t9/ElivMWPeY9xYXb70ffW37uiPFeYvB9mix4WkffW33uj5o8HvP2K7iEQdJLW336Yj81e8 + 8VgsE+JHjFe2svi/jQ/NXvMeKxiiz+3H21l6X8JIWFPMnuMYx4IWKLD7MfbWWyrZSJCFhTGnmLGP + dW5dXW7x1k1WDX6Jd+CYtFUr5E3vrcuX+nWttFSbxTK+YvBjxeKFjQuf2qfvW2/C0l77lRdivJWx + vfeKEyoiJc/petvP3pe+6mJi0lNQ+we6hLC4uqlrbz96XvgkOOKYnoa418lRUqfDn88vbW3qP80h + kcHEaoLvELtqaGpXsa9qsGypU+G/lrb2vnGiIig4mXtOGtfbLBsrgkfDlxl7a2+L5U8GRZXChTye + o+xe6hseCEfD/plrbwq2LweEWJ+R00DHuVxoJCLh3S1slWLRLvHghPXVKlSpXCuge4xIoJCRQ+H1 + pLlrrZUtJIeKFjXcr2tdY8XuoZZrCnAuP2P7116j89R4MQvMH2VmLC4v5HHXXlVimNDwQtU9U96L + oKWFyf8AI1+tdaqtmxkhiELV116ZGRdZUtY6+2jklTCSwW/TCnZV3q7ldemXeXzrX29ntLP9ruJS + oyMk+BJUE+2r2tdc9yw+oXctdKSgqs+IT/kdpFcPEsp5kJ5kRdH2lca4V8lWLwRQ+HwUrWr1s5xh + 3lpbyfdwJybXeWqk39TLOGVkZUkPhIW5UqVxqV7apXXsoJEuRDg1R0p3Mu9o7SHzfUu/V21uocF3 + jtK4SHHiUoJcR9yI7lSpUqVwr2tezr2VSu4+yrxqRkWV4dlMjJSipLuepvNrkjRfUybZCQnhQaHE + fcIqV366apUroH2LKfKiuVEPmdS4WtYOzfeu7UTmoRcmSk7SeZkySy8SMqoqKQmmSH3+RV7WpXtG + 8q4jlnZDgixtnZWykJ1VVp7xa7SVF9KFwGSR9LwcmjaG0RmW9XGpmMxmRXsq4VxqVKlSpUqVKlSp + UqVMxmMxmMxUqZivYVHKhJuTIIToeJZKllBfrTXq1p8i/sZUzIkPiRYxoqZxWgrQzmYdpFd8kbaH + rX+TaLmZ1zHaErZcx3g6SyN9p3lneoy8RWiZmMxnXMzrmZkZipUzGYzGYzGczo2iNquY7eK8R3uC + 8SV99MR3u05HSrTkdKnyOly9J0t+kd5m+5G1tOYra0QrzLkdJfpZ0iXhEdva/pCvFr48RXl+MWK9 + R8anSrPmdKs+Z0qHM6VZ8zpMPUdKs+Z0qz5nSrPn/wADvFm/EjOv0xlL+iNleJ/TZU92QuFvL6rR + L2RZ/DUvqtJMiqRSXhpr1ZbSNY/Uh2dv/sT/AODJb/7E/wDgcb14Xd/5P5/yu817cTj4xkveI7SE + fyRaXxL6E5DvVs+SOk2nikdIfpNu+TOkS5HSbTwRK1tZfkzK2ZCjXc2Vn6mfO/yZllzNmzZmzMgp + 2ke5m3tvUO0tZd82ZW+8pJdzZmtF+UjaWvqZtrb1G1tn+bM9r62bS29TNpbeozWr/KRS09UjLPnI + yWn/AJGytHzOjzfgxXWfpFdJ8hXOfI6FM6DI6BI6vYvhwvhwvhyF8OiL4dDkK4w5HQ48jocPSdCh + 6UdAs/SdW2fpOq7PkdVWZ1TZnVVnyOqrPkdV2fI6rsvSL4ZZekj8Pso/giF3jHwFAURLV0MpKyjL + vSZK5WT/AAX+B3Gz9KHcYekdxjyHcI8jq9cjq5HVyOrjq46vR1ejoC5HQVyOgrkdBXI6CuR0Bcjq + 9HVyOrUdWo6uR1dHkdXR5HV0OR1fDkdAh6RXGHpOhQ9J0OHI6JHkdFjyOix5HRo8jo8eR0dcjYLk + bFGxRskbJGyRszZmQyGQymUymUymUymUoUKFChQoU8ioZTIZDIbM2ZszZmzNmbM2ZszZmQyGQyGQ + yGQyGQyGUymUymUylChQoUKFChQoUKFChQoUKf8At3//xAAtEAACAQMDBAICAgMBAAMAAAAAAREQ + ITFBUWEgcYGRQKGx8DDRweHxUGBwkP/aAAgBAQABPxD/APEpy9S0bgTNvTeiYr/kEaq7GrNd0JuF + EzCPs/8A40ksnqhjYHqwUlREJkLhdmagfdSJGR9CHl/DEzdeBM/sTqYexI8NdMreskN0T/5bRZaX + caM+83D2Q0KzfA5IXkYh+QxvFxvGRkhkpqU/jwrCkakkJki4sEUE5p2Lk0hilaksS/Z5o53E3GSX + vW4sJvYtyfB2/RxCzP2FrN7GgXQWyxOy2u6EzSS/3ErdHA9kp4f8bVlF5IP7jjnEP3I7PwNP+p+h + DXhN2Q1OH5h/aDcaFf6DRR5Y1LQ7Ig/1Q2Qb+yZzL2Tay2XBlHI4FgSs3cS1AzW8fU/HxDKRalpH + J4gsEGKzExMlFj3TzSeayZF/BN8j7CSJKCLiGIiSEjyYwydz2JWv2cn2JCgve061WvQ1t7Da/wDM + Syuw0NckCZljiCe6GhRJDYroxnsIYxXDwh5RkSggR0LhiLShZJtRDV5QJSoSQvj8bNr99CyrECYm + JiPImQWSSSaJ4ZJJNJpPQ2TRqRBkMg8Ukb6Jq6SZGiSeRiJJkY0JyoSMmQXHyGbiHAdgzqlrJNqv + BeZY5ROr18iZbkxyQZUkxxOi7Ek9E00pNJ6WaiXAlW1ZJJosdLo6sbJrJIyDBI2MbGzS43CosJIb + YLtTLoTba7/x8iCMtoE5a5QkiHaEyRiYqT0WF0xRU8GRiQlWSSSS+5HLOzpbpdZJGxsmGSSSNl9i + Rtksnkkyqew7G6Em8jvKn7gTTp4cjRlCpuK8JT8lI5DRbMa0CwJATsLcJidZMkdCrNXWSRukk0g8 + 9Vx96QR0PsQtDTp0HgkbJGMMNYZaDcobzcbW8jJbk03camNhePkwvu93Flp6ChaeyT/RcYUWLiaJ + XBNFSSavpg7CBHBHchEcIiMJdc1wN8Hilxkkk1kkmkkjGSNjDyPBndkqB958D3T9Bt7fgWKIXg7y + EiPd8mA/SqVL0NdGAxYEooqJk0mvmnk89fgknq8nkfkVif4JJJ/gY2N3vQxkeRpb/RyCMQZEOzRZ + qvZlYO4G39/Js7LaYjNrID3GsTImLAhUkkvXyKss/cksno7nst0Z1r5LVuMcn7ijJ6J56WSNjyMb + GuNsI4Ea0RDd4Y+Y30xJrJMQaDZ/n5M/1gJGQkMUt2WjCZoI7iNayJkzWXsK+n1WeCXsS9iXV3JV + ZpbpR5o6QPv/AASIY2MY6NjUmDPKBr9kebNoyyJQkyCCIgtr+TzYwuvBmS5iTEYQhCdF5IVVdUi5 + HCIT0RC2RC2RC2IWxC2IvgdJpNLdTEeKQPua5p46JJG+DxSSbjGNwSO450/A3yNce80O+SMB4HPC + ZOLRfXyuNWgW5rwd1CYhMQncRPSqX6fR5RPKJJ7kk8FxzwX4L7nk8tEcunknleySH6hie9X3+x0i + eiKSNoYxk/skjKMDaeVHkdafklPX8luBYeTw9icqU5Fj5UfoVfv4Fhs1zQu1CYhVeawa0XR7J709 + 08UueVXz0QQtiFxVwyJoyC5A79TGOjGMbVGGpLRezGo3cSTAK3hfz8trU0cfvohNx5shi4E5oQhM + TJRPJPL9GuomRJBC5PBYSVJJ5rc89Mk7D6PBbY8FhoS2p4o6RR0ngkaHYbsNjY2NYbG5HOBpiU6F + 5YpOISb5fvgZyZVGEKiEaE0mirE9WaQdxdKVHnomt6NDGye5JPDHRskkSwxsljGx4JQNx/o4Mm49 + xoTbZF7/AOfL0Ww8i0Vh2SkTEKRCM1uYFS4ppJJJ6Libi+S5fei5cU7kxS9YgsT/AAWqxjZJIx3G + PgbgbG7DdsDaeFR5EGaGCZRfLuk3EF3IkifcTE6EX4J5E+SSSSeiKL+DBcgis9Pk80SRNGOsjY2N + 0ZI8jHmhv9gbKcjeMsbRZjNipzBnl2+XM+IJGtPkTLqEWF2FVUsSieH6J4E+CXsTOhfZkdyD11yT + 0+C55r5Y+7GkQiFsQthjyPNHR0YxrDuMedRLEOdKJHYWNyPbqffy9RsPJjSQJeBKlCoqTSK3oiSK + TyKsGg52PQ+1bErkb4ZfZkvYll9kXepfcvuLv9j8D6HYbew5L1ZIw2OnUhmkp0jIsXGLYlpCsYSh + fL+mM200ZMMVCEKsiglbijcknuLsTbU9kosKr6IpcgZJJNETwN8UdX3qx0ZoM0odDcDageVka7jI + Zb/o2xaEosZFZJfL+oPcIgdmRExMQjQRK3E0WJRKonue+j3/ABssY6bjmMkMRyyOXSxFGamlJGOo + 3ySN6Svoe4NoyNvcczdDJFhXIHu18zmpDZvcUUMQ2xLCEJCEQQthGtGI7UuKZyvReMl9xTuX3FXB + LpNjDq+jx0ujqxnmjHAx+Bv2SeD1RhgaIV4I/YPcS2PskWnlPmoVWjZcYhK4ggkLAnW4hUtyKsWo + 2STas0kyaV1pKG+xPKG+RX39Du9SO5Fc0Y6NVkbGxxjI4GjgxxyM1EwJxYXM4/NXJ7qRJbnQyZKT + FDgYQhCpNyVqJokT7+ie5PBM11rEmuem9O5CLbELZHity5PI+9XB4ox0Yx4Gxsb5Gxs8Him4fajQ + x5C2Xs+ay1hppiQb3ckrsTQhCYjhUSFVIv0R1anmsGp4PAyOmHWSRuCeCWOdqXGNDLCZGNDJG7xR + sbuTO9EAsSrfNQnO5csi5LNTAUCEITFFV12Ee/4PRpSZJuPptTFWajHVjox/2OLjwM7Df7I2S3sO + dxsVxDwMy0ofN/IOk6SbZiPgQhZEIRImiUaipK3JJWsEJJJX6hUQurXHXI/NX0PoYxqjsHgZqN8o + a5I3Lx9lxGIxK+4jRpn5rx3jcxtmLuLuISF0FSbUmk0dVS4utdzFHS9LVsOrHRlyBp7jqXbjycht + aQON/R5GeBTCLBJjv+PmqS3uObpTuIQqIQn0IVPNVNbwR2L8DndF9yRMakzzSx5o/wBvT7rJFPJY + tTWskjY3QhJD7E3wNt5G+CSxHofBEs3Bse3zge66Qx2WBlsJ9hczQhUXQsitXNI5I7kHshENiFsQ + thKj6LSWHEmBlzB5I5I5dIIRCISIIGhoYxqRNhR4GPA2P9sa2MCYmIX2fN+iSsdCELFESIRIq4/h + lkkk18HjpdVWKeRxudqsYx0YcuGNcl0O5EHkgQhu5+alYCQPNCFVMTonNESTYTJ6VisdFjWjGSOj + g8nklV8EvYvJchjXJF6PAxoY243cfceR0yabGaJWsLJ2hL53Pc1EFgVVRVQkRwI8CYhWpKJS39UQ + 5HwOwngl7FyWXJ4G3oiXt9l50Ll9RmBU16HNNaNjGxsejA0kcjGpGu4jyK5cFhfNW/wZmtCzboVE + IVFXAhMmwnVzSDzR96RyRyI5ZFtfZAwiaMXVJPDG+CXtclxgbGxsYeRvkY0zmxD5HO40puywsGAi + Dc9/m63DHl0YRBpSOhUkms8iaJO4QkdUkkkkkk0mrq+iSaN8DPAxmAwxoZHBHA1u0OFo+y0Z+i3N + FE/Yn9nzVlQ5IJCJuMIX8XggeCLkdLd62rYZbY8E0kyeCXsxMbexLL8F2RzTSrGOKrobpCEvRFEL + gbSQ2V4aa+vm4eVCFQqa106JomSJkkiZ6pInIh9E2pJPJLL0dJJW5KJWhNGySaShjxajIY/oaGuT + sQRgISEuC1DclrcWfN/IMCN2KN5GQmT0SJ1TFBImW6EySexLE2S6aUsI9GRzuxFv1jgsaWQsYguX + nQuX3ItdkCPFW7jDMtBjViGQ8SOIG7EqRSIWwg8rZPm/nDRYQo3JsJidEPIu1M1sI8Vjg8dShai7 + lqeyKRwRxRpUVHRz0PGaeWPsdgzAY9LDx/oaQ4Wg04DbFvRecib1YqEJFyvmp9laRNhiYidRMkVJ + pHNEum+3RHRNJJ6YHVvTr70YyKHRjU5GiA4ktQkLcmETLceXuj+ZM7ZlqEhU1onGCRMTrInuTwJ0 + lwJiESNl9iXsTweGX2+y+xfYvsi/BejJ4pPFXTSl0PpcjIEGriQ0NDtrYhyMRwxJupuS4h5fx/Hz + JGezkyINCVCRFiCKJickk0kTE6eaeDmlzyeSSei556L1t0s0IGOj4GOhqjJLQ8PYy3XoZbkoyoeB + Dw0NLfmIlxJYxoY86kDsIIoggRoaCJgRImSJ0be55JdJLEKsJ0lDFSCwyRmKy+hk3JG5GNGBnIYb + YbH3MiyTgguTDRMdpX38zkJjLOjLyOHHWBoggVEamhK3FdZE+4oFCIc+iHNfNLIlErklbHgng8Ux + VmnRijIGrjSIWyEOjG0Nlgd2NLchLMjiME7JITllqGZEj0G/m+YjkUrMkSFYLFIIGiCCCBdGhImJ + 83rKLcjjangyYpKpNPRcfS+ryIY2NkbGihjQkIeMl1qNca1EpFcWts+atS3F+aJwItYTEe6Qxiqg + SXQmJiYop4JJpkmDOq9F5yX3Ia1IbeSGQ9yO5BNO4+4+idiSaDBsmw2MiR0N3PA1BBrlzuOo1uvm + tHcEkk9hM5iQadaZQzyKiwQQQQQQKUJikhtZIe41yzufsj9khbELZEvYu+i25rXwX2+y+xqXZDnN + HSRsYbyaDdWNlyGPYTEI6ScEY1t837oiSd0mof8AoTvXE5G+S1L4okQ9i+xHYidBpkdhp0TEJG40 + ZLYl7Et6IvwKaOsDkvT2TAy9WxjY2NjGOjoxvkY4olIkIkhqJZGPZ/t82FnJkKNJk1yVYsy6qRCp + xRPk1yRyQjIiBFiUWrImNwSSSajJR6ECbSN8DfcudxtbjY2NmNk0Yxj8DzkcDG1GES/WyEnJghHN + iaTN+Pm5u6ImNDLoouGeBKOBU80gStSxC2IXB4FhNFjsQmQhJUlUuX1L1+6uNYIRFJJ5NSxacDGG + zU0HRujGMbHgbEE4ptnqLJIxyfp81Ps3A1IkMviESh0IGhCpamdCVseBRsiFshJbISRCIRCpaKya + kk9TyMUGUNFhvkkfIa53Muj7nkbv0G41JG0NyzC9NpZAgt0eRb5vbtyFFKcOjJRwNEECVIIIIoqJ + jZ79UZI6+qWrLJZJNI5FDV0cZPBI2Njq95GOjwM7jKjciyOCgblkN6C3EgkNDpuXHzebk0K1BYEG + hopJyTS3SvBpoaF9kXi6RfZF9i+yFOqRzY9Eokk8DdqJDvSSA0IcjTlj4MT4JbDZI2SNjG3B3ozS + jY2M7hxyN8H0NJIQRIyEYWTw+d3csR2Gh5GGJ5JokTJ7EBUbLGKeKyoGN0STqTNLDLFqNjd7jPJ5 + GyeSbD7EsdGxk0mpu4xBwMgVFxKNCyNGrF2/zok3IzGdx3DRivkuIRImJ3PB4PA+wuxPFE9qTSTC + pnUmBkjcolkskbJ4+iVGH6J4o5kuNk3GSiR0dTGNIaQ1cgS2o7jRYQi0MS9s5+dGmjg3hIGbDQIV + yLjRHJHccnsTJJsSTwj0NkiLl4PRaIG4LnkkaGJjdiRsTMEkyJ8Ddhu9G2eTsMUQMzgbJGM1IEsx + q+T7JjA3eRuWSqSaaItx85BeJF4EbYkMzEoVGiKNOkksTZLJuT3LxYuXgvGR9zTJ7IQjQsN3J7DD + Y3wJkmRPknx5GyRs0JuN0XijQ3HcY+9Jo1a40NXHOEMnyLJC80+8nHzmpUMnmw7oaTdiyKzMBLk1 + NdTNIsQGlVqeSeaYPQy3Bc6NkyJolIcmST6G+R8hsRJ+BeybZG6a4o6yibjfesXHSRsbGhoaGquQ + xN2fz5hLeEsnZrQuhkiS1kTLnkWCbGgyxIzyNrf7PNDZPYsSSt0diST9uNmCb5GJNRiZMotJKkb9 + F9CdmOjlkUmGSSS/+DkaHNJuTS5A0IPkUQK+kdiUTXZj5z62EMcC0F+SPZbXlEwhOx6JJ4JJ0L7l + 9yXA2yWNtiZmUTwiU4RLoTknknsSTTQnYnySSaDZI3THB2G5J3JJ6Vk7E8DGMb4HeidEDQo1LEvu + OCuJjVZSlv8ANSXX2WS2vHjI6SzfLEyEcSKsJJHaTxGPsSSTGtRiWTUbJWoye5KnQnuT2Gd39Hvw + ZLakpEKJexN8EukjfsWSfHYsPuPvRuk0bE+DQll9xyNQMmiEeRlxcy4XNJliu6WJo9yySViGHz8u + WfOrgc7eZ1G5LkSh3oQxTdh5YNYklobuSoQaN0TydzJJ8E3Gyf1jJ5ObH7ksi25KVDZNhujfJIjU + ndkpaycGTNJG3TzRkllEkjoYrsSFRvYgimTZZE1xNeVqhyMolfJv3/hQhLbJXDdxDQ2mNMwWMDld + owrkaFgaUSTyTz9kvf7E439kxuITwiZJRJJNPRrRNk8DJGySS42N8k7kNqk7kkk0kdGSSSiUSoqg + QoRKgbG6SWJjeTeWQnbHbG1FOWr2fIxML7H8ETUD2hoXAR3FRFku4Ingud0fRJYZJI2TSSeaSSOk + kjY2SSSSTS9JG6JJGySSSSRjGxOpKGQKCbWGySa2Yu6ssIelYRBAot4zyhC7ialfGbSTbcJD+ynN + C4tQJuHRidrDCwn1E7P5J+CVoySSWSdxJJYNERJtSDJRJJJJJJJIw3RJJD+AB3kd+jxIbkdxpwPk + QFTSCRkiZJJJJNEaiIe5AijgRV9fGbJTS1bjbMURwDp4FgOwyDRE7Ek8lmpBqJYkepHcwA7slx6Q + m4V+RkWtULDmGrDGNqQjtcYhiR6kFqNOUJ8IcyIvUjuR3IENyBDciQ3ORDRqh7Ayy+zeHa4zDe7G + XgLUT2cX2JeU9lv+5jhDe7jKKRDLiAes+WNYXgEMEnaBJ2HYW0PAv+V0P70SaR7ahe9fhidq9hDn + 6Yh79wNOL1iLtxcn5HSfr1/gTiSQvjNSjY5Fm1Jyn/Yen+zuK6DlBQUc0gbT7YX+B5LR3ZY2HpDi + yVtEi1X2UDbl12Y9MocObAu5kVLZWGxLbb5JCxh5If7RrI3yJ2oky2do+BNOVKMw+TtPCPxBcDuG + b7ixB2YsD3CXguR6Q8jwH/RErHmG7V6HkeJkmWeWT/2MTtfZm0f2I03qq7J2gnidqJ+ozVs7hyDV + JihW0iXp9HE9Df8A1Ddp9DboG8cT9nAzmexDR0RPSOLegQWVCVoIRB8mCEQGj0Fkd8Q6NpvUaRPR + to0GZ7DO4Q5IcneFsMRl0ZLN4b9DjZ3BcottiAhIK24l6BPR6EjR6FsfQtn6Ft/QtmLaC2gqJcQt + g4hbQtgS7CTYS7ENiGxHYiRI7EdiBAgRI7ESJEiQoj/wIQ1Y1Y02GuxHYhsQ2IbENiGxDYhsQ2Ib + ENiOxHYjsR2IbENiGxDYgQ2I7EdiOxAgQ+H/AIAQQQQQQQQQQR/5cEEEIhEIhEIhEIhEIggggggg + gggggggggggj/wCif//EACoRAAEDAgMIAwEBAQAAAAAAAAEAAhEDQAQSExAhMTJBUFFgICIwYXCQ + /9oACAECAQE/AP8AiUdwRrOJ4ptZwQxA6hCswoPaeqketuEFA/HM4cChVeOqFc9QhXHhCs1Cq09V + mHlSPxkdslF7R1RrMHVHEMRxLegRxP8AEMRv3i4rCHlFA7Z/GSsxUqdklSfgHuHVar1rOWufC1/I + WuPC12rXatdqFZq1G+Vmb5UqR+hICzt8rO3ytRnlarPK1WeVqs8rWZ5WuxHEN8IYlp6LXajiPARr + u6LWetR/lZj5RJ+dLkE2+JG8FFC6P5TCzHys7vKzu8rVd5Rqu8rVf5Ws9Gq49Vnd5Unz8j84+A2y + pU7GiTCAjdb4gS2Ufwn4T3SVPypCXi4qiWHbPouHH2m4cJBGw9wn9j+GH63LxDinbR6CNmHH1m5q + iHlHYPnPfaHILnEj7So2D0SjyC5xI3Ao8EfRaXILmsJYdh9FZuaLlwkEbDYRshRsjuA3C6eIcQj2 + ibwDfd4gQ6UfRKYlwu8QNwKPolES+7qtlqPomHG8m7qcpRtJ7hh+Bu38pRtI7hQH0u6hhpR7dFtS + EMF3U5T2jfdhDeULt/KUf1nuoQ43lTlKPwH5SpUqe5N4i8cJBG0+gt4i9qCHH0NnML2u37II+g0+ + YXuIHA7CfQaXOL2tyIo7B3+mJcL2vyIo2c9upc4va/Iij6BKo84vcQfqEUe5T+9HnF7ielxFtFrR + 5xe4niET6FS5xe4niPQ6XOL3E8QjbSpUqe00ecXuJ4hHsUfpNpR5xe4npZFTsnt1EfcXuJ6I+hUT + 973E9Lie10uYXuJ4Ds269ZzC9xPAeht43uJ4D0QcLzE8voYTeUXlcfT0Snyi8qCWHaPQaXILxwkE + I8bWVPbaPJevEOPodDlvavOfQ8PwN7V5zZx3DD9b2tzm6ntOH4m9rj7nYNkWUWU3eH4m9xA+2wfC + P03dxw/E3uJG4HaD6Bh+t7WEsPwB7JF3h+t6RIhHj6Fh+t9VEPKPwHehtocl9iBvlH0HDncRfVxL + ZRH4x3jDn7XzxLSEUfQKJh4v6rMp2Ed/YYIv6jM7YR3bCh30IXznhokp7g90oiNg+Mqe70Ggu33r + 3hvFVK7jw3KSeKCJ7/MHcqT84u6tcN3Dii4nZKlT6AxxYZQMiRc16mUQOPo+HfIy3DnBokpzi8yd + h+JQH5z3Mpji10oW9apnMDh+U9/bwtq9Qj6j8oUKNsFQfgGrItNGkUWEWUINKFNyFLyVpBaQWkPK + 0h5Wl/UKQ6rI1abVpLTWn/VptRptWkjTK03LTctNyyOWRy03LTctNyyOQpuKFEoUAhRahbVaecLQ + etB60HI0XLTcOiynwhTPVCm1abVp/wBWmtMLTCDWhSsykKG+FuUhZlmWZZkWtKyNQa0dFKkFQ3ws + rfCyNWVvhQ3wsrfCytUN8Ld4W5btkqSt6gqCoKylZSspWVZFkWVZVlWVZVlWVZVkWRZFlWVZAsoW + UKL6FChZQsoWVZVlWRZFkWRZFkWRZFkWRZFkWRZFkWRZFkWRZFkWQLIFlCyhZQsqyqFChQoUKFCh + Qo/eFHZYUKFChQoUKFChQoUKFChQoUKFChQoUKFChQoUKFChQoUKFCj0KNkKNkKFChQoUKFCjZCh + QoUfOP8ACf/EAC4RAAIBAgQGAwEAAQQDAAAAAAABEQIQAxITQAQgITBQUTEyQSJhFCMzYHCBkP/a + AAgBAwEBPwD/AOJSUuDQpS6IqwqR4HpjwqkOipfhDX/W6XKK6J6jUXk6fqHRQ/weDT+DwX7NKoyV + GVkPsw/GQ2adT/BYNb/BcPWf6Wr9YuGX6x8Mo6PcYDmhCK6SCBojswuWOTKmadJpo0kaP+TRY8Fo + 0maTNOoyVejK/RBD7kNmSr0ZKvRp1ejTqNKv0aVfo0qzRqP9PV7Hw7X6aFQuH9s0aELCo9GnTHwZ + UUj6jVkQQY0ajjb8LV0aEVIaItA9qhk8s8kIhejLT6MlPoVFPoyU+h4dIqF6Mq9EKys3ZOzdpYuv + yJQNjEhFQhESZRU2rqhNjcudvwzipoXyNWa5YIvBBBBHZi0j3SZ8jVleBK0SZSBIi+O4oe4wXFau + 1ZraLbruKytAldXk4pxRG4ocVJ2XVDtUh7RvawRaCO0hWV1d24v83NLmmSj4u+pBBHhZ2Kshcrdu + Kc1JbnCc0Ips0MfJBHekknwy5WI4n/ke54ZzTAn1EMaH5hXXK7cQ/wDce54V9WhfIhjGvMoXYx/+ + R7nAcVogpsx7OPGO+K5re5ocVJjFZju+1JJJLJ3scy7bt+FTlt7qh5qUxWfhIIII3Ls303fDuaIK + bOz5H5VczZiOKHu+GfVops7Pkgi0ck8k+PduIcYb3eDVFRTd+fduKfRLd4f3RT8Csx3eyduh08M7 + cU+q3dH2Qhcr5Y8ehc7txLmvd4SmtCFyPtwQQRu5Jutg3bGc1vd4X3VlyPwXQ6HTcMZ8Iblzu8P7 + IXIx9iLR4hdtofTeYX3QuR9qCCCPIsqXTeUOKk7SKz7j5OnhFyrkYyr6ve4dWalOydmPzjtifV73 + h6v5GxXfZjZzad87Yr/h73h38q1Ksx+IjaMZi/R73A+4hOz8/iOKXveH+4hWffgh2jxuN0oe94df + 2IXO/MwY/wDxve8MurELb9DpuYIsu7xH0e94X9sttLJJ2ckk882Xbx/o97wvwxKz8qu3jfR73hfh + is+7HiF28ZxQ97wvwxbaCCCCN4u2zH+j3vC/DFZ7+Se5Gydsf6Pe8L+is9hFoIII5YII2i2GO/4e + 94T9FZ+TXbdsdf7b3vC/orvuxuI3WN9HveE/e1G8673E60ve8J8vkfgJ376re8L8sX/QHero3vOF + f9MXfjvdPCsr+z3nDuKxXnzj5MX7veYTitCs9jHgI2GOv7e8pcVJi+LMeygjmjwb5OI++9ocpXZH + npOJ+29wutC5I7T2XS03nvJEd5nE/K3uD9FytDQ+3JPNJJJJPhuJXxvcH6KzYndoa2EEWgi3Q6eD + i3FfVb3Ac0KzsmTZ96SdjBHYgjvwRbivhb3hn/ImNXTJJ7fXaTveK+FveFfVq7RFpJ7kk+P4r83u + A4rVlZoa8HO74r83tLhpiu0NbDp3oIIIIII3E24qOm+wnNCYrsd4IItHcgjwzvxH333Dv+YFdj80 + 78TT1T33DuKoExXfLO1XgGRbiV/M77DcVIQmIfnYMdTQ9/hVZ1Nkx9qfKVqU9/g4mSoXUgQ152r4 + H876ml1OEYNDpphjs+5HkeJqap6b2mh1fBh4FK+eoqUvi8H4O8EeYaldTGw8lXT43eFgOrq/gVEC + QuV+dxMNV0wNNOHueHws7l/CFA7zabMjzvE0Q8y3FFDrcIppVFOVCExq0HVFI/P4lCrpgajb4OHk + Uv5H1sj5vBBH/QKutT23D4af9O0ECPjt9OXMjOjUQqk/jvQRySh10oeL6NV+jVfo1X6NV+jV/wAD + xX+Iz1GpUav+DUNT/BqVCxKjVNSkz0mekz0men2Z6fZnpM9JnpMyHXSh49KHxD/B8RUNy9tgYmR9 + fg16PZrUezWoNWj2Z6X+kodSM7M7NT/BqGoajHVUyGZSGiavZ/XshmVmUymUVVSM9Q3U/wBIZDRN + XszVGeozVE1ezNUZqiavZ19nU6+z/wBkEI6EozIzIzozozo1DUNQ1DOzMZmZ2Z2Z2ajNQ1DUNRmo + zUZqMdbGySRvdSSZhVCrYsRmdmc1DUNQ1DVNU1TUNQ1DUNQ1DUNQ1DUNQ1DUNRmozUZqMzszszsz + MzMzGYzGYzEkkkkkkkkkkkkkkkkkkkkkkkkk+BkkzGYzGYzGYzGYzEmYzGYkkkkkkkkkkkkkkkkk + kkkkkkkkkkkkkkkkkkkkkkkny8kkkkkkk/8Ahn//2Q== + headers: + accept-ranges: [bytes] + cache-control: [max-age=2592000] + connection: [close] + content-length: ['17074'] + content-type: [image/jpeg] + date: ['Fri, 30 Jun 2017 09:53:57 GMT'] + etag: ['"59429db3-42b2"'] + expires: ['Sun, 30 Jul 2017 09:53:57 GMT'] + last-modified: ['Thu, 15 Jun 2017 14:46:11 GMT'] + server: [nginx/1.10.2] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + ol_catalog_product.info + + + + + + + + 382 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id382skuhdb006set16typesimplecategories23websites1type_idsimplenameShay + Printed Pillowdescription20" + x 20". Printed polyester. Hidden zipper closure. Interior pillow included. + 100% polyester fill. Spot clean. Imported.short_descriptionA + distinctive printed pillow that fills any room with classic appeal.weight1.0000news_from_dateold_idnews_to_datestatus1url_keyshay-printed-pillowvisibility4country_of_manufactureurl_pathshay-printed-pillow.htmlcategory_ids23required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:19+01:00updated_at2013-03-20 + 18:18:01price210.0000group_pricespecial_pricespecial_from_dateminimal_pricespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricehomeware_style120material130bed_bath_type184decor_type217home_decor_type191color13bedding_patternPrint'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=p1mnj4v45hnmh3riq36526hhr2; expires=Fri, 30-Jun-2017 + 10:53:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + product_media.list + + + + + + + + 382 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hdb006_1.jpglabelposition1exclude1urlhttp://magento/media/catalog/product/h/d/hdb006_1.jpgtypesimagesmall_imagethumbnail'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=kkr82p2l0k3vjel7tk9vgoaa84; expires=Fri, 30-Jun-2017 + 10:53:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: null + headers: + Connection: [close] + Host: [magento] + User-Agent: [Python-urllib/2.7] + method: GET + uri: http://magento/media/catalog/product/h/d/hdb006_1.jpg + response: + body: + string: !!binary | + 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 + headers: + accept-ranges: [bytes] + cache-control: [max-age=2592000] + connection: [close] + content-length: ['53231'] + content-type: [image/jpeg] + date: ['Fri, 30 Jun 2017 09:53:58 GMT'] + etag: ['"59429db3-cfef"'] + expires: ['Sun, 30 Jul 2017 09:53:58 GMT'] + last-modified: ['Thu, 15 Jun 2017 14:46:11 GMT'] + server: [nginx/1.10.2] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 47f7a88eac3b9f145009f20485e38ce8 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:53:58 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=612otjllfh5ju2o0va2l0ob4v6; expires=Fri, 30-Jun-2017 + 10:53:58 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_product_category.yaml b/connector_magento/tests/fixtures/cassettes/test_import_product_category.yaml new file mode 100644 index 000000000..05ff2b188 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_product_category.yaml @@ -0,0 +1,155 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + ff254f0ed5cf6588a73c68f79aa4f472'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 10:51:34 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=mecpan1kidld8bjef2srkocjb1; expires=Wed, 28-Jun-2017 + 11:51:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + ff254f0ed5cf6588a73c68f79aa4f472 + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 10:51:34 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=bon8d709pvqrh1pfrgomgkh7a4; expires=Wed, 28-Jun-2017 + 11:51:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + ff254f0ed5cf6588a73c68f79aa4f472 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 10:51:34 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ohbarhhtp6p6g22ntgdtjua8q3; expires=Wed, 28-Jun-2017 + 11:51:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_product_category_missing.yaml b/connector_magento/tests/fixtures/cassettes/test_import_product_category_missing.yaml new file mode 100644 index 000000000..be06cf9e1 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_product_category_missing.yaml @@ -0,0 +1,465 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 557567b0d37d7436eb27f741db46fde8'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 15:28:31 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=bl0udj8i4u2e6n9n1qp7ok03j7; expires=Wed, 28-Jun-2017 + 16:28:31 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 557567b0d37d7436eb27f741db46fde8 + + + + + + ol_catalog_product.info + + + + + + + + 382 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id382skuhdb006set16typesimplecategories23websites1type_idsimplenameShay + Printed Pillowdescription20" + x 20". Printed polyester. Hidden zipper closure. Interior pillow included. + 100% polyester fill. Spot clean. Imported.short_descriptionA + distinctive printed pillow that fills any room with classic appeal.weight1.0000news_from_dateold_idnews_to_datestatus1url_keyshay-printed-pillowvisibility4country_of_manufactureurl_pathshay-printed-pillow.htmlcategory_ids23required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T06:48:19+01:00updated_at2013-03-20 + 18:18:01price210.0000group_pricespecial_pricespecial_from_dateminimal_pricespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptionis_recurring0recurring_profilecustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_pricehomeware_style120material130bed_bath_type184decor_type217home_decor_type191color13bedding_patternPrint'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 15:28:31 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=204sco5kcjtrbvot9rbbtadds4; expires=Wed, 28-Jun-2017 + 16:28:31 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 557567b0d37d7436eb27f741db46fde8 + + + + + + catalog_category.info + + + + + + + + 23 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id23is_active1position2level3parent_id7increment_idcreated_at2013-01-25T12:08:31+01:00updated_at2013-03-05 + 07:17:38nameBed + & Bathurl_keybed-baththumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7/23all_children23path_in_storechildrenurl_pathhome-decor/bed-bath.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 15:28:31 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ecrlbdndat8ckrg3veaqts44t3; expires=Wed, 28-Jun-2017 + 16:28:31 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 557567b0d37d7436eb27f741db46fde8 + + + + + + catalog_category.info + + + + + + + + 7 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id7is_active1position5level2parent_id2increment_idcreated_at2013-01-25T11:49:05+01:00updated_at2013-05-08 + 05:26:34nameHome + & Decorurl_keyhome-decorthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7all_children7,22,23,24,25path_in_storechildren22,23,24,25url_pathhome-decor.htmlchildren_count4display_modePAGElanding_page21is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutone_columncustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 15:28:31 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=klh4ugh75altccn6hv4b27a142; expires=Wed, 28-Jun-2017 + 16:28:31 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 557567b0d37d7436eb27f741db46fde8 + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 15:28:32 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=s0qtf18one8r5n3715nhgpa1o2; expires=Wed, 28-Jun-2017 + 16:28:31 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 557567b0d37d7436eb27f741db46fde8 + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 15:28:32 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=goj4tp90c2lv3e3o8i0q8v8sl5; expires=Wed, 28-Jun-2017 + 16:28:32 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 557567b0d37d7436eb27f741db46fde8 + + + + + + product_media.list + + + + + + + + 382 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/h/d/hdb006_1.jpglabelposition1exclude1urlhttp://magento/media/catalog/product/h/d/hdb006_1.jpgtypesimagesmall_imagethumbnail'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 15:28:33 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=p1vh7c4fgjhd4836hp4lkin9m2; expires=Wed, 28-Jun-2017 + 16:28:33 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 557567b0d37d7436eb27f741db46fde8 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 15:28:33 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=juakjv0pe8om91ufi4td386h82; expires=Wed, 28-Jun-2017 + 16:28:33 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_product_category_with_gap.yaml b/connector_magento/tests/fixtures/cassettes/test_import_product_category_with_gap.yaml new file mode 100644 index 000000000..15bca859a --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_product_category_with_gap.yaml @@ -0,0 +1,340 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 4f089e26a960d80b34d88dd20e63345a'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 10:55:50 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=vad90q2qp5nlu0g9njo91t7gi7; expires=Wed, 28-Jun-2017 + 11:55:50 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 4f089e26a960d80b34d88dd20e63345a + + + + + + catalog_category.info + + + + + + + + 26 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id26is_active1position1level3parent_id8increment_idcreated_at2013-01-25T12:10:39+01:00updated_at2013-05-06 + 04:17:00nameWomenurl_keywomenthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/8/26all_children26path_in_storechildrenurl_pathsale/women.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 10:55:51 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=206ch91fbpsl98t8iouh4mpjo5; expires=Wed, 28-Jun-2017 + 11:55:51 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 4f089e26a960d80b34d88dd20e63345a + + + + + + catalog_category.info + + + + + + + + 8 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id8is_active1position6level2parent_id2increment_idcreated_at2013-01-25T11:49:50+01:00updated_at2013-05-15 + 22:49:33nameSaleurl_keysalethumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/8all_children8,26,27,28,29path_in_storechildren26,27,28,29url_pathsale.htmlchildren_count4display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update<reference> + + <remove name="right.poll"/> + + </reference>'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 10:55:51 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=2c7smqbbpo55oeug0m22nb1sh0; expires=Wed, 28-Jun-2017 + 11:55:51 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 4f089e26a960d80b34d88dd20e63345a + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 10:55:51 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=h5225hnq0l3qubt3ecrtin4fu3; expires=Wed, 28-Jun-2017 + 11:55:51 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 4f089e26a960d80b34d88dd20e63345a + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 10:55:51 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=39g06rhfqj875s7dv1b11ql6r2; expires=Wed, 28-Jun-2017 + 11:55:51 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 4f089e26a960d80b34d88dd20e63345a + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Wed, 28 Jun 2017 10:55:51 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ra23ecam3i1p8dbqc701h4toa3; expires=Wed, 28-Jun-2017 + 11:55:51 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_product_configurable.yaml b/connector_magento/tests/fixtures/cassettes/test_import_product_configurable.yaml new file mode 100644 index 000000000..627f64b13 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_product_configurable.yaml @@ -0,0 +1,159 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + aacec9e6bc212b7a608133f802c4b11a'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:51:54 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=6f2nu545eno5j3lot6gjobfdc6; expires=Fri, 30-Jun-2017 + 10:51:53 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + aacec9e6bc212b7a608133f802c4b11a + + + + + + ol_catalog_product.info + + + + + + + + 408 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id408skumtk000cset13typeconfigurablecategories16websites1type_idconfigurablenameChelsea + TeedescriptionUltrasoft, + lightweight V-neck tee. 100% cotton. Machine wash.short_descriptionMinimalist + style and maximum comfort meet in this lightweight tee.news_from_dateold_idnews_to_datestatus1url_keychelsea-teevisibility4country_of_manufactureurl_pathchelsea-tee-701.htmlcategory_ids16required_options1has_options1image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-05T07:25:10+01:00updated_at2013-03-20 + 18:47:44price75.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datetier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id2meta_titlemeta_keywordmeta_descriptioncustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availablegift_wrapping_priceoccasion31apparel_type40sleeve_length46fit51gender93'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:51:54 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ccmm8eo5ehkv94nr3b2r052k65; expires=Fri, 30-Jun-2017 + 10:51:54 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + aacec9e6bc212b7a608133f802c4b11a + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:51:54 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=8t12tkivkmnbdf078tifledjd2; expires=Fri, 30-Jun-2017 + 10:51:54 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_product_grouped.yaml b/connector_magento/tests/fixtures/cassettes/test_import_product_grouped.yaml new file mode 100644 index 000000000..f755c863b --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_product_grouped.yaml @@ -0,0 +1,402 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + cdee9577bed4f32709963a9163ee2e3c'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:54:38 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=qfaueolgu6tvtgradtifui5rg5; expires=Fri, 30-Jun-2017 + 10:54:38 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + cdee9577bed4f32709963a9163ee2e3c + + + + + + ol_catalog_product.info + + + + + + + + 555 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id555skuacj007set17typegroupedcategories19websites1type_idgroupednamePearl + Necklace SetdescriptionAA& + quality 6.0-6.5mm pearls. Double knotted on silk thread. 24" strand. + 14K gold hook-and-eye clasp. Made in Indonesia.short_descriptionFresh + Water Pearl Necklacesnews_from_dateold_idnews_to_datestatus1url_keypearl-necklace-set-testvisibility4country_of_manufactureIDurl_pathpearl-necklace-set-test.htmlcategory_ids19required_options0has_options0image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-19T19:37:46+01:00updated_at2013-03-19 + 22:36:21meta_titlemeta_keywordmeta_descriptioncustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutoptions_containercontainer2gift_message_availablegift_wrapping_availablegender94'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:54:38 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=50jh3e97i0tucntojlqusrgb81; expires=Fri, 30-Jun-2017 + 10:54:38 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + cdee9577bed4f32709963a9163ee2e3c + + + + + + catalog_category.info + + + + + + + + 19 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id19is_active1position2level3parent_id6increment_idcreated_at2013-01-25T12:05:03+01:00updated_at2013-03-05 + 07:16:42nameJewelryurl_keyjewelrythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/6/19all_children19path_in_storechildrenurl_pathaccessories/jewelry.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutthree_columnscustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:54:38 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=00monbrpd30rhongauki2ahh54; expires=Fri, 30-Jun-2017 + 10:54:38 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + cdee9577bed4f32709963a9163ee2e3c + + + + + + catalog_category.info + + + + + + + + 6 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id6is_active1position4level2parent_id2increment_idcreated_at2013-01-25T11:47:41+01:00updated_at2013-12-25 + 12:28:34nameAccessoriesurl_keyaccessoriesthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/6all_children6,18,19,20,21path_in_storechildren18,19,20,21url_pathaccessories.htmlchildren_count4display_modePAGElanding_page17is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutone_columncustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:54:38 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ql6lo0j4iipebivct836aj43l1; expires=Fri, 30-Jun-2017 + 10:54:38 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + cdee9577bed4f32709963a9163ee2e3c + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:54:39 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=mgu6d8b1540hdjjps3o6nhr405; expires=Fri, 30-Jun-2017 + 10:54:39 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + cdee9577bed4f32709963a9163ee2e3c + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:54:39 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=l54d71aen06gicr92rdso11p52; expires=Fri, 30-Jun-2017 + 10:54:39 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + cdee9577bed4f32709963a9163ee2e3c + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:54:39 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=k4f0ua474inh8spa8og5onhs53; expires=Fri, 30-Jun-2017 + 10:54:39 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_import_product_virtual.yaml b/connector_magento/tests/fixtures/cassettes/test_import_product_virtual.yaml new file mode 100644 index 000000000..a8ec6b177 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_import_product_virtual.yaml @@ -0,0 +1,1527 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 29e4d364f41a997fee1a7b2b037d1185'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:55:36 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=tubbnud2u7ob3bs5v8qu1fljg3; expires=Fri, 30-Jun-2017 + 10:55:35 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 29e4d364f41a997fee1a7b2b037d1185 + + + + + + ol_catalog_product.info + + + + + + + + 563 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['422'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + product_id563skuhbm010set10typedownloadablecategories22websites1type_iddownloadablenameFire + [Kalima remix] by Unannounced GuestdescriptionFire + [Kalima remix] by Unannounced Guest. Duration: 2:48. Downloadable as mp3.short_descriptionTunes + for the trip.old_idnews_from_datenews_to_datestatus1url_keyfire-kalima-remix-by-unannounced-guestvisibility4url_pathfire-kalima-remix-by-unannounced-guest.htmlcategory_ids22required_options1has_options1image_labelsmall_image_labelthumbnail_labelcreated_at2013-03-25T21:20:16+01:00updated_at2013-04-03 + 07:43:49links_purchased_separately1samples_titleSampleslinks_titleLinkslinks_exist1price2.0000group_pricespecial_priceminimal_pricespecial_from_datespecial_to_datecosttier_pricemsrp_enabled2msrp_display_actual_price_type4msrptax_class_id0meta_titlemeta_keywordmeta_descriptioncustom_designcustom_design_fromcustom_design_tocustom_layout_updatepage_layoutone_columnoptions_containercontainer1gift_message_availablegift_wrapping_availableformat193author_artistUnannounced + GuestgenreHip + Hop + + Funkbooks_music_type209'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:55:36 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=dple4mq840osrpk7jp243sg310; expires=Fri, 30-Jun-2017 + 10:55:36 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 29e4d364f41a997fee1a7b2b037d1185 + + + + + + catalog_category.info + + + + + + + + 22 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['342'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id22is_active1position1level3parent_id7increment_idcreated_at2013-01-25T12:07:52+01:00updated_at2013-05-16 + 20:06:14nameBooks + & Musicurl_keybooks-musicthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7/22all_children22path_in_storechildrenurl_pathhome-decor/books-music.htmlchildren_count0display_modePRODUCTSlanding_pageis_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layouttwo_columns_rightcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:55:36 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=5fdfs19620ajc3n7ff8cvogll3; expires=Fri, 30-Jun-2017 + 10:55:36 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 29e4d364f41a997fee1a7b2b037d1185 + + + + + + catalog_category.info + + + + + + + + 7 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id7is_active1position5level2parent_id2increment_idcreated_at2013-01-25T11:49:05+01:00updated_at2013-05-08 + 05:26:34nameHome + & Decorurl_keyhome-decorthumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2/7all_children7,22,23,24,25path_in_storechildren22,23,24,25url_pathhome-decor.htmlchildren_count4display_modePAGElanding_page21is_anchor1available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settings0custom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutone_columncustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:55:36 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=654durt9t7kfshbf055vmmhb34; expires=Fri, 30-Jun-2017 + 10:55:36 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 29e4d364f41a997fee1a7b2b037d1185 + + + + + + catalog_category.info + + + + + + + + 2 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id2is_active1position1level1parent_id1increment_idcreated_at2013-01-14T11:12:53+01:00updated_at2013-05-15 + 22:43:57nameDefault + Categoryurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1/2all_children2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren4,5,6,7,8,9url_pathchildren_count27display_modePRODUCTS_AND_PAGElanding_page19is_anchor0available_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_products0custom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:55:36 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=daoa5qiahjvejm0jd1ho3gpjs4; expires=Fri, 30-Jun-2017 + 10:55:36 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 29e4d364f41a997fee1a7b2b037d1185 + + + + + + catalog_category.info + + + + + + + + 1 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['341'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + category_id1is_activeposition0level0parent_id0increment_idupdated_at2013-01-14 + 10:12:53created_at2013-01-14T11:12:53+01:00nameRoot + Catalogurl_keythumbnaildescriptionimagemeta_titlemeta_keywordsmeta_descriptioninclude_in_menu1path1all_children1,2,4,10,11,12,13,5,14,15,16,17,40,6,18,19,20,21,7,22,23,24,25,8,26,27,28,29,9path_in_storechildren2url_pathchildren_count28display_modelanding_pageis_anchoravailable_sort_bydefault_sort_byfilter_price_rangecustom_use_parent_settingscustom_apply_to_productscustom_designcustom_design_fromcustom_design_topage_layoutcustom_layout_update'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:55:36 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=npcdvn0uis6l3aea195ln15b11; expires=Fri, 30-Jun-2017 + 10:55:36 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 29e4d364f41a997fee1a7b2b037d1185 + + + + + + product_media.list + + + + + + + + 563 + + id + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + file/u/n/unannouncedguest_.jpglabelposition1exclude1urlhttp://magento/media/catalog/product/u/n/unannouncedguest_.jpgtypessmall_imagethumbnailfile/u/n/unannouncedguest.jpglabelposition2exclude1urlhttp://magento/media/catalog/product/u/n/unannouncedguest.jpgtypesimage'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:55:37 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=p51p1osfclo05neko1hk7u2lf5; expires=Fri, 30-Jun-2017 + 10:55:37 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: null + headers: + Connection: [close] + Host: [magento] + User-Agent: [Python-urllib/2.7] + method: GET + uri: http://magento/media/catalog/product/u/n/unannouncedguest.jpg + response: + body: + string: !!binary | + /9j/4AAQSkZJRgABAQEAyADIAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz + ODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2Nj + Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAW7BbsDAREA + AhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAEFAgMEBgf/2gAIAQEAAAAA86AAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMWQAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAjRzadMTnu6OjYAAAAAAAAAAAAAAAAAAAAAAAAAAAANNZqAGfR078wAAAAAA + AAAAAAAAAAAAAAAAAAAAA5K7EABPR1dUgAAAAAAAAAAAAAAAAAAAAAAAAAAclYAABus9oAAAAAAA + AAAAAAAAAAAAAAAAAAAa6jAAABlb7QAAAAAAAAAAAAAAAAAAAAAAAAABX8IAAA6LYAAAAAAAAAAA + AAAAAAAAAAAAAAAUusAAALncQAAAAAAAAAAAAAAAAAAAAAAAACQ0U4AAALDvAQAAAAAAAAAAAAAA + AAAAAAAAAJAVnGAAADqtQAQAAAAAAAAAAAAAAAAAAAAAAkAFHgAAADbdAAEAAAAAAAAAAAAAAAAA + AAAAEgAaKcAAADZdgAAgAAAAAAAAAAAAAAAAAAAAkAAV/AAAABvuAAACAAAAAAAAAAAAAAAAAAAB + IAAKfQAAAB32AAAAQAAAAAAAAAAAAAAAAAAEgAAMaIAAABa9QAAAEAAAAAAAAAAAAAAAAAASAAAO + eoAAAAm8zBAAABAAAAAAAAAAAAAAAAAAkAACRwVwAAAHTbgBAAAEAAAAAAAAAAAAAAAAAkAAEgU/ + OAAABZdwACAAAQAAAAAAAAAAAAAAAAkAAJAFDiAAABd7QAAgAAIAAAAAAAAAAAAAAAEgACQAa6MA + AADddAAAIAAEAAAAAAAAAAMcdezOQAAAJAAJAActSAAABZ9oAAAQAAQAAAAAAAAANXFy4myw6gAA + BIABIAAruAAAAGV5mIAAAIAAQAAAAAAAAA5qzEDos8wAAJAASAACr4wAAAdtoAQAABAACAAAAAAA + AA5K2ADda5gABIAEgABJS6AAAAXe4ACAABAACAAAAAAAADg4AAbbbMABIAEgACQefgAAAOq3AACA + ACAAIAAAAAAAA460ABtt8gASABIACQGNAAAAC56AAAIAAIAAgAAAAAAAaaiAADqs5AEgAkABIA0U + oAAAb7qUAAAIAAgACAAAAAAAEVGkAAO2xAJABIAEgA5agAAALPvAQAAEAAQACAAAAAAAK7iAAA7b + CQSAEgASAA4K0AAATe7AAQAAQACAAQAAAAAAGFLAAADtsRIAJABIAEldXAAADquAABAACAAQAEAA + AAAADhrwAABY9qQASAEgASFdXAAAC27AAAIABAAIACAAAAAAEU2sAAALLtABIASAEgK6uAAAJv8A + IAAAgAEABAAQAAAAABy1YAAAFn2AEgBIASAK6uAAAOq5AgAAIACAAgAIAAAAABU84AAAE2+8CQAk + ASACurgAAC37AAgAAgAIAEABAAAAAAxpcQAAAGdtuCQBIAkABX1oAACfQZAAIAAQAIAEABAAAAAB + yVgAAAA2W+wkASAJABJXVoAADquQAAQABABAAgAIAAAAAV/CAAAAG23zkASASACQ4KsAABbdoAAB + AAU+jfYbwQAQAIAAAAAVPOAAAADZbbgCQCQAkDiqQAAJ9BmCAAAgBjQQntscggAgAQAAAABU84AA + AAGy32gSAkAJAOCrAAA6LwAIAAIA4KwbLPqCACABAAAAAOGvAAAAAbbnISASAJACsrwAALC0AAIA + BAHBWwOyx2CACABAAAAAaqYAAAAA6LbJIBIAkGvRza9evAAABbdwAAQACAVtesNHNlY9skAEAEAA + AAAp9IAAAAB0W+QBIBIjRy8eoAAABZ2IAACAAgY0WHR9V+bY1vTabCACACAAAAA460AAAAAdVtIJ + AEsebk5cAAAAAb7XpEAACABArOB9X6/G9Xi8bTpIAIAIAAAAEVOgAAAAAddrIkAnHi5ubEDdt37t + uumAAAHXY9IEAAQAQc9K999B4fnXpPA1vZZZoAQAIAAAAGFTqAAAAAHZakgGHDw4Bnv6d/TIPOQA + AAG3qsNwEAAgAjHz70P15p+cdWvxkWfUgBABAAAAAY1fOAAAAAO+ykBqreWBn19fVIBNDoAADpw0 + gb7HskCABABFHp2/b+zn815+v9h4Crsu9ACACAAAAAiv4gAAAAB32UhhW8Qz6+vpyAElbWZbNjDE + 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 + headers: + accept-ranges: [bytes] + cache-control: [max-age=2592000] + connection: [close] + content-length: ['59044'] + content-type: [image/jpeg] + date: ['Fri, 30 Jun 2017 09:55:37 GMT'] + etag: ['"59429db2-e6a4"'] + expires: ['Sun, 30 Jul 2017 09:55:37 GMT'] + last-modified: ['Thu, 15 Jun 2017 14:46:10 GMT'] + server: [nginx/1.10.2] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 29e4d364f41a997fee1a7b2b037d1185 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 09:55:37 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=e4h6dumukd7j8bcep0vi2db873; expires=Fri, 30-Jun-2017 + 10:55:37 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_product_export_qty.yaml b/connector_magento/tests/fixtures/cassettes/test_product_export_qty.yaml new file mode 100644 index 000000000..fcaeb527c --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_product_export_qty.yaml @@ -0,0 +1,173 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 570aed496d3b151bc6ca9a97f226c8c6'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:41:10 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=pe3510vtfv4oeircg61b166ti6; expires=Fri, 30-Jun-2017 + 15:41:10 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 570aed496d3b151bc6ca9a97f226c8c6 + + + + + + oerp_cataloginventory_stock_item.update + + + + + + + + 879 + + + + + + is_in_stock + + 1 + + + + + + qty + + 30.0 + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['540'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:41:11 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=6g4d4ibrs0q0q5qg23ga3fe1o5; expires=Fri, 30-Jun-2017 + 15:41:10 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 570aed496d3b151bc6ca9a97f226c8c6 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:41:11 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=6upblevrvj0sh9j2oqqq0vslb5; expires=Fri, 30-Jun-2017 + 15:41:11 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_product_export_qty_config.yaml b/connector_magento/tests/fixtures/cassettes/test_product_export_qty_config.yaml new file mode 100644 index 000000000..64ce85543 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_product_export_qty_config.yaml @@ -0,0 +1,205 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 73ae35c8599ce4e6cea0df610d03aabd'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:48:44 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=f61obeg5ihsl9s2opebfdsfcm4; expires=Fri, 30-Jun-2017 + 15:48:44 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 73ae35c8599ce4e6cea0df610d03aabd + + + + + + oerp_cataloginventory_stock_item.update + + + + + + + + 879 + + + + + + use_config_manage_stock + + 0 + + + + + + backorders + + 2 + + + + + + is_in_stock + + 1 + + + + + + use_config_backorders + + 0 + + + + + + manage_stock + + 1 + + + + + + qty + + 333.0 + + + + + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['851'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:48:44 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=gohj6c6uo0pn3p6p7bflim1gn1; expires=Fri, 30-Jun-2017 + 15:48:44 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 73ae35c8599ce4e6cea0df610d03aabd + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:48:44 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=9dl679v3k76lj04iufnm6hh641; expires=Fri, 30-Jun-2017 + 15:48:44 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_sale_order_cancel_export.yaml b/connector_magento/tests/fixtures/cassettes/test_sale_order_cancel_export.yaml new file mode 100644 index 000000000..ec2b86d63 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_sale_order_cancel_export.yaml @@ -0,0 +1,241 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 8a68465b96ac80299c8e7b0b4be6ceef'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 13:55:34 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=hv94a49u1krs0pahdi8vol61q6; expires=Fri, 30-Jun-2017 + 14:55:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 8a68465b96ac80299c8e7b0b4be6ceef + + + + + + sales_order.info + + + + + + + + 100000201 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['350'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + statenewstatuspendingcoupon_codeprotect_code13520dshipping_descriptionUnited + Parcel Service - Groundis_virtual0store_id1customer_id136base_discount_amount0.0000base_discount_canceledbase_discount_invoicedbase_discount_refundedbase_grand_total387.2700base_shipping_amount12.3100base_shipping_canceledbase_shipping_invoicedbase_shipping_refundedbase_shipping_tax_amount0.0000base_shipping_tax_refundedbase_subtotal344.0000base_subtotal_canceledbase_subtotal_invoicedbase_subtotal_refundedbase_tax_amount30.9600base_tax_canceledbase_tax_invoicedbase_tax_refundedbase_to_global_rate1.0000base_to_order_rate1.0000base_total_canceledbase_total_invoicedbase_total_invoiced_costbase_total_offline_refundedbase_total_online_refundedbase_total_paidbase_total_qty_orderedbase_total_refundeddiscount_amount0.0000discount_canceleddiscount_invoiceddiscount_refundedgrand_total387.2700shipping_amount12.3100shipping_canceledshipping_invoicedshipping_refundedshipping_tax_amount0.0000shipping_tax_refundedstore_to_base_rate1.0000store_to_order_rate1.0000subtotal344.0000subtotal_canceledsubtotal_invoicedsubtotal_refundedtax_amount30.9600tax_canceledtax_invoicedtax_refundedtotal_canceledtotal_invoicedtotal_offline_refundedtotal_online_refundedtotal_paidtotal_qty_ordered3.0000total_refundedcan_ship_partiallycan_ship_partially_itemcustomer_is_guest0customer_note_notify1billing_address_id355customer_group_id1edit_incrementemail_sent1forced_shipment_with_invoicepayment_auth_expirationquote_address_idquote_id619shipping_address_id356adjustment_negativeadjustment_positivebase_adjustment_negativebase_adjustment_positivebase_shipping_discount_amount0.0000base_subtotal_incl_tax374.9600base_total_duepayment_authorization_amountshipping_discount_amount0.0000subtotal_incl_tax374.9600total_dueweight3.0000customer_dobincrement_id100000201applied_rule_idsbase_currency_codeUSDcustomer_emailjanedoe@magento.comcustomer_firstnameJanecustomer_lastnameDoecustomer_middlenamecustomer_prefixcustomer_suffixcustomer_taxvatdiscount_descriptionext_customer_idext_order_idglobal_currency_codeUSDhold_before_statehold_before_statusorder_currency_codeUSDoriginal_increment_idrelation_child_idrelation_child_real_idrelation_parent_idrelation_parent_real_idremote_ip198.228.200.167shipping_methodups_GNDstore_currency_codeUSDstore_nameMain + Website + + Madison Island + + Englishx_forwarded_forcustomer_notecreated_at2013-05-25 + 21:37:05updated_at2013-05-25 + 21:37:06total_item_count2customer_genderhidden_tax_amount0.0000base_hidden_tax_amount0.0000shipping_hidden_tax_amount0.0000base_shipping_hidden_tax_amnt0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedshipping_incl_tax12.3100base_shipping_incl_tax12.3100coupon_rule_namepaypal_ipn_customer_notified0gift_message_idbase_customer_balance_amount0.0000customer_balance_amount0.0000base_customer_balance_invoicedcustomer_balance_invoicedbase_customer_balance_refundedcustomer_balance_refundedbs_customer_bal_total_refundedcustomer_bal_total_refundedgift_cardsa:0:{}base_gift_cards_amount0.0000gift_cards_amount0.0000base_gift_cards_invoicedgift_cards_invoicedbase_gift_cards_refundedgift_cards_refundedgw_idgw_allow_gift_receipt0gw_add_card0gw_base_price0.0000gw_price0.0000gw_items_base_price0.0000gw_items_price0.0000gw_card_base_price0.0000gw_card_price0.0000gw_base_tax_amount0.0000gw_tax_amount0.0000gw_items_base_tax_amount0.0000gw_items_tax_amount0.0000gw_card_base_tax_amount0.0000gw_card_tax_amount0.0000gw_base_price_invoicedgw_price_invoicedgw_items_base_price_invoicedgw_items_price_invoicedgw_card_base_price_invoicedgw_card_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_items_base_tax_invoicedgw_items_tax_invoicedgw_card_base_tax_invoicedgw_card_tax_invoicedgw_base_price_refundedgw_price_refundedgw_items_base_price_refundedgw_items_price_refundedgw_card_base_price_refundedgw_card_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedgw_items_base_tax_refundedgw_items_tax_refundedgw_card_base_tax_refundedgw_card_tax_refundedreward_points_balance0base_reward_currency_amount0.0000reward_currency_amount0.0000base_rwrd_crrncy_amt_invoicedrwrd_currency_amount_invoicedbase_rwrd_crrncy_amnt_refndedrwrd_crrncy_amnt_refundedreward_points_balance_refundreward_points_balance_refundedreward_salesrule_pointsimported0payment_authorization_expirationforced_do_shipment_with_invoicebase_shipping_hidden_tax_amount0.0000order_id181shipping_addressparent_id181customer_address_id92quote_address_idregion_id12customer_id136faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjanedoe@magento.comtelephone888-888-8888country_idUSfirstnameJaneaddress_typeshippingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id356billing_addressparent_id181customer_address_id92quote_address_idregion_id12customer_id136faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjanedoe@magento.comtelephone888-888-8888country_idUSfirstnameJaneaddress_typebillingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id355itemsitem_id543order_id181parent_item_idquote_item_id2320store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id418product_typeconfigurableproduct_optionsa:10:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MTgvY2F0ZWdvcnkvMTEv";s:7:"product";s:3:"418";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"26";i:180;s:2:"81";}s:3:"qty";s:1:"2";s:10:"return_url";s:0:"";}s:15:"attributes_info";a:2:{i:0;a:2:{s:5:"label";s:5:"Color";s:5:"value";s:6:"Indigo";}i:1;a:2:{s:5:"label";s:4:"Size";s:5:"value";s:2:"XS";}}s:11:"simple_name";s:9:"Tori + Tank";s:10:"simple_sku";s:8:"wbk003xs";s:20:"product_calculations";i:1;s:13:"shipment_type";i:0;s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwbk003xsnameTori + Tankdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered2.0000qty_refunded0.0000qty_shipped0.0000base_costprice60.0000base_price60.0000original_price60.0000base_original_price60.0000tax_percent9.0000tax_amount10.8000base_tax_amount10.8000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total120.0000base_row_total120.0000row_invoiced0.0000base_row_invoiced0.0000row_weight2.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax65.4000base_price_incl_tax65.4000row_total_incl_tax130.8000base_row_total_incl_tax130.8000hidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000has_children1item_id544order_id181parent_item_id543quote_item_id2321store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id512product_typesimpleproduct_optionsa:5:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MTgvY2F0ZWdvcnkvMTEv";s:7:"product";s:3:"418";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"26";i:180;s:2:"81";}s:3:"qty";s:1:"2";s:10:"return_url";s:0:"";}s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwbk003xsnameTori + Tankdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered2.0000qty_refunded0.0000qty_shipped0.0000base_costprice0.0000base_price0.0000original_price0.0000base_original_pricetax_percent0.0000tax_amount0.0000base_tax_amount0.0000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total0.0000base_row_total0.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_taxbase_price_incl_taxrow_total_incl_taxbase_row_total_incl_taxhidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amntbase_weee_tax_applied_row_amountweee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000item_id545order_id181parent_item_idquote_item_id2322store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id423product_typeconfigurableproduct_optionsa:10:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MjMvY2F0ZWdvcnkvMTMv";s:7:"product";s:3:"423";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"18";i:180;s:2:"80";}s:3:"qty";s:1:"1";s:10:"return_url";s:0:"";}s:15:"attributes_info";a:2:{i:0;a:2:{s:5:"label";s:5:"Color";s:5:"value";s:6:"Purple";}i:1;a:2:{s:5:"label";s:4:"Size";s:5:"value";s:1:"S";}}s:11:"simple_name";s:21:"Racer + Back Maxi Dress";s:10:"simple_sku";s:6:"wsd005";s:20:"product_calculations";i:1;s:13:"shipment_type";i:0;s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwsd005nameRacer + Back Maxi Dressdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice224.0000base_price224.0000original_price224.0000base_original_price224.0000tax_percent9.0000tax_amount20.1600base_tax_amount20.1600tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total224.0000base_row_total224.0000row_invoiced0.0000base_row_invoiced0.0000row_weight1.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax244.1600base_price_incl_tax244.1600row_total_incl_tax244.1600base_row_total_incl_tax244.1600hidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000has_children1item_id546order_id181parent_item_id545quote_item_id2323store_id1created_at2013-05-25 + 21:37:06updated_at2013-05-25 + 21:37:06product_id302product_typesimpleproduct_optionsa:5:{s:15:"info_buyRequest";a:7:{s:4:"uenc";s:96:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9jYXRhbG9nL3Byb2R1Y3Qvdmlldy9pZC80MjMvY2F0ZWdvcnkvMTMv";s:7:"product";s:3:"423";s:8:"form_key";s:16:"sj7gV8wdnPmbJkIX";s:15:"related_product";s:0:"";s:15:"super_attribute";a:2:{i:92;s:2:"18";i:180;s:2:"80";}s:3:"qty";s:1:"1";s:10:"return_url";s:0:"";}s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuwsd005nameRacer + Back Maxi Dressdescriptionapplied_rule_idsadditional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled0.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice0.0000base_price0.0000original_price0.0000base_original_pricetax_percent0.0000tax_amount0.0000base_tax_amount0.0000tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount0.0000base_discount_amount0.0000discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total0.0000base_row_total0.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_taxbase_price_incl_taxrow_total_incl_taxbase_row_total_incl_taxhidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceledhidden_tax_canceledtax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amntbase_weee_tax_applied_row_amountweee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000paymentparent_id181base_shipping_capturedshipping_capturedamount_refundedbase_amount_paidamount_canceledbase_amount_authorizedbase_amount_paid_onlinebase_amount_refunded_onlinebase_shipping_amount12.3100shipping_amount12.3100amount_paidamount_authorizedbase_amount_ordered387.2700base_shipping_refundedshipping_refundedbase_amount_refundedamount_ordered387.2700base_amount_canceledquote_payment_idadditional_datacc_exp_month0cc_ss_start_year0echeck_bank_namemethodcheckmocc_debug_request_bodycc_secure_verifyprotection_eligibilitycc_approvalcc_last4cc_status_descriptionecheck_typecc_debug_response_serializedcc_ss_start_month0echeck_account_typelast_trans_idcc_cid_statuscc_ownercc_typepo_numbercc_exp_year0cc_statusecheck_routing_numberaccount_statusanet_trans_methodcc_debug_response_bodycc_ss_issueecheck_account_namecc_avs_statuscc_number_enccc_trans_idpaybox_request_numberaddress_statusadditional_informationcybersource_tokenflo2cash_account_idideal_issuer_idideal_issuer_titleideal_transaction_checkedpaybox_question_numberpayment_id181status_historyparent_id181is_customer_notified1is_visible_on_front0commentstatuspendingcreated_at2013-05-25 + 21:37:06entity_nameorderstore_id1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 13:55:34 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=81uodtsb6c0tekf5nb3speq362; expires=Fri, 30-Jun-2017 + 14:55:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + 8a68465b96ac80299c8e7b0b4be6ceef + + + + + + sales_order.addComment + + + + + + + + 100000201 + + canceled + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['397'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 13:55:35 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=8j8fuktujoha7nabri2mn44655; expires=Fri, 30-Jun-2017 + 14:55:34 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + 8a68465b96ac80299c8e7b0b4be6ceef + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 13:55:35 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=p04n54nm0fj482dkelj4hmfqn2; expires=Fri, 30-Jun-2017 + 14:55:35 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/fixtures/cassettes/test_sale_order_reopen_export.yaml b/connector_magento/tests/fixtures/cassettes/test_sale_order_reopen_export.yaml new file mode 100644 index 000000000..14abd6670 --- /dev/null +++ b/connector_magento/tests/fixtures/cassettes/test_sale_order_reopen_export.yaml @@ -0,0 +1,234 @@ +interactions: +- request: + body: !!python/unicode ' + + + + login + + + + + + odoo + + + + + + odoo42 + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['209'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + cc71b22e102c1d28a47b1e9353aa24dd'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:15:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ojqfgv6snn1ke79hm05m8aivj7; expires=Fri, 30-Jun-2017 + 15:15:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + cc71b22e102c1d28a47b1e9353aa24dd + + + + + + sales_order.info + + + + + + + + 100000200 + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['350'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + statecanceledstatuscanceledcoupon_codeprotect_codeda83dcshipping_descriptionUnited + Parcel Service - Groundis_virtual0store_id1customer_id135base_discount_amount-10.0000base_discount_canceled10.0000base_discount_invoicedbase_discount_refundedbase_grand_total599.2500base_shipping_amount0.0000base_shipping_canceled0.0000base_shipping_invoicedbase_shipping_refundedbase_shipping_tax_amount0.0000base_shipping_tax_refundedbase_subtotal835.0000base_subtotal_canceled835.0000base_subtotal_invoicedbase_subtotal_refundedbase_tax_amount74.2500base_tax_canceled74.2500base_tax_invoicedbase_tax_refundedbase_to_global_rate1.0000base_to_order_rate1.0000base_total_canceled599.2500base_total_invoicedbase_total_invoiced_costbase_total_offline_refundedbase_total_online_refundedbase_total_paidbase_total_qty_orderedbase_total_refundeddiscount_amount-10.0000discount_canceled10.0000discount_invoiceddiscount_refundedgrand_total599.2500shipping_amount0.0000shipping_canceled0.0000shipping_invoicedshipping_refundedshipping_tax_amount0.0000shipping_tax_refundedstore_to_base_rate1.0000store_to_order_rate1.0000subtotal835.0000subtotal_canceled835.0000subtotal_invoicedsubtotal_refundedtax_amount74.2500tax_canceled74.2500tax_invoicedtax_refundedtotal_canceled599.2500total_invoicedtotal_offline_refundedtotal_online_refundedtotal_paidtotal_qty_ordered2.0000total_refundedcan_ship_partiallycan_ship_partially_itemcustomer_is_guest0customer_note_notify1billing_address_id353customer_group_id1edit_incrementemail_sent1forced_shipment_with_invoicepayment_auth_expirationquote_address_idquote_id577shipping_address_id354adjustment_negativeadjustment_positivebase_adjustment_negativebase_adjustment_positivebase_shipping_discount_amount0.0000base_subtotal_incl_tax910.1500base_total_due599.2500payment_authorization_amountshipping_discount_amount0.0000subtotal_incl_tax910.1500total_due599.2500weight2.0000customer_dobincrement_id100000200applied_rule_ids11,29base_currency_codeUSDcustomer_emailjohndoe@magento.comcustomer_firstnameJohncustomer_lastnameDoecustomer_middlenamecustomer_prefixcustomer_suffixcustomer_taxvatdiscount_descriptionext_customer_idext_order_idglobal_currency_codeUSDhold_before_statehold_before_statusorder_currency_codeUSDoriginal_increment_idrelation_child_id195relation_child_real_id100000200-1relation_parent_idrelation_parent_real_idremote_ip74.68.114.135shipping_methodups_GNDstore_currency_codeUSDstore_nameMain + Website + + Madison Island + + Englishx_forwarded_forcustomer_notecreated_at2013-05-25 + 01:58:37updated_at2017-06-30 + 12:35:40total_item_count2customer_gender1hidden_tax_amount0.0000base_hidden_tax_amount0.0000shipping_hidden_tax_amount0.0000base_shipping_hidden_tax_amnt0.0000hidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedshipping_incl_tax0.0000base_shipping_incl_tax0.0000coupon_rule_namepaypal_ipn_customer_notified0gift_message_idbase_customer_balance_amount0.0000customer_balance_amount0.0000base_customer_balance_invoicedcustomer_balance_invoicedbase_customer_balance_refundedcustomer_balance_refundedbs_customer_bal_total_refundedcustomer_bal_total_refundedgift_cardsa:1:{i:0;a:5:{s:1:"i";s:2:"58";s:1:"c";s:12:"20IRHQMGHAB6";s:1:"a";d:300;s:2:"ba";d:300;s:10:"authorized";d:300;}}base_gift_cards_amount300.0000gift_cards_amount300.0000base_gift_cards_invoicedgift_cards_invoicedbase_gift_cards_refundedgift_cards_refundedgw_idgw_allow_gift_receipt0gw_add_card0gw_base_price0.0000gw_price0.0000gw_items_base_price0.0000gw_items_price0.0000gw_card_base_price0.0000gw_card_price0.0000gw_base_tax_amount0.0000gw_tax_amount0.0000gw_items_base_tax_amount0.0000gw_items_tax_amount0.0000gw_card_base_tax_amount0.0000gw_card_tax_amount0.0000gw_base_price_invoicedgw_price_invoicedgw_items_base_price_invoicedgw_items_price_invoicedgw_card_base_price_invoicedgw_card_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_items_base_tax_invoicedgw_items_tax_invoicedgw_card_base_tax_invoicedgw_card_tax_invoicedgw_base_price_refundedgw_price_refundedgw_items_base_price_refundedgw_items_price_refundedgw_card_base_price_refundedgw_card_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedgw_items_base_tax_refundedgw_items_tax_refundedgw_card_base_tax_refundedgw_card_tax_refundedreward_points_balance0base_reward_currency_amount0.0000reward_currency_amount0.0000base_rwrd_crrncy_amt_invoicedrwrd_currency_amount_invoicedbase_rwrd_crrncy_amnt_refndedrwrd_crrncy_amnt_refundedreward_points_balance_refundreward_points_balance_refundedreward_salesrule_pointsimported0payment_authorization_expirationforced_do_shipment_with_invoicebase_shipping_hidden_tax_amount0.0000order_id180shipping_addressparent_id180customer_address_id91quote_address_idregion_id12customer_id135faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjohndoe@magento.comtelephone888-888-8888country_idUSfirstnameJohnaddress_typeshippingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id354billing_addressparent_id180customer_address_id91quote_address_idregion_id12customer_id135faxregionCaliforniapostcode90232lastnameDoestreet10441 + Jefferson Blvd, Suite 200cityCulver + Cityemailjohndoe@magento.comtelephone888-888-8888country_idUSfirstnameJohnaddress_typebillingprefixmiddlenamesuffixcompanyvat_idvat_is_validvat_request_idvat_request_datevat_request_successgiftregistry_item_idaddress_id353itemsitem_id541order_id180parent_item_idquote_item_id2315store_id1created_at2013-05-25 + 01:58:37updated_at2017-06-30 + 12:35:40product_id393product_typesimpleproduct_optionsa:5:{s:15:"info_buyRequest";a:4:{s:4:"uenc";s:64:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9lbGVjdHJvbmljcy5odG1s";s:7:"product";s:3:"393";s:8:"form_key";s:16:"18owwYZqmMopo5xy";s:3:"qty";i:1;}s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuhde003nameMadison + RX3400descriptionapplied_rule_ids11,29additional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled1.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice715.0000base_price715.0000original_price715.0000base_original_price715.0000tax_percent9.0000tax_amount63.5800base_tax_amount63.5800tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount8.5600base_discount_amount8.5600discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total715.0000base_row_total715.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax779.3500base_price_incl_tax779.3500row_total_incl_tax779.3500base_row_total_incl_tax779.3500hidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceled63.5800hidden_tax_canceled0.0000tax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000item_id542order_id180parent_item_idquote_item_id2316store_id1created_at2013-05-25 + 01:58:37updated_at2017-06-30 + 12:35:40product_id396product_typesimpleproduct_optionsa:5:{s:15:"info_buyRequest";a:4:{s:4:"uenc";s:64:"aHR0cDovL2FraXppYW4udGVhbS5tYWdlbnRvLmNvbS9lbGVjdHJvbmljcy5odG1s";s:7:"product";s:3:"396";s:8:"form_key";s:16:"18owwYZqmMopo5xy";s:3:"qty";i:1;}s:17:"giftcard_lifetime";N;s:22:"giftcard_is_redeemable";i:0;s:23:"giftcard_email_template";N;s:13:"giftcard_type";N;}weight1.0000is_virtual0skuhde006nameLarge + Camera Bagdescriptionapplied_rule_ids11,29additional_datafree_shipping0is_qty_decimal0no_discount0qty_backorderedqty_canceled1.0000qty_invoiced0.0000qty_ordered1.0000qty_refunded0.0000qty_shipped0.0000base_costprice120.0000base_price120.0000original_price120.0000base_original_price120.0000tax_percent9.0000tax_amount10.6700base_tax_amount10.6700tax_invoiced0.0000base_tax_invoiced0.0000discount_percent0.0000discount_amount1.4400base_discount_amount1.4400discount_invoiced0.0000base_discount_invoiced0.0000amount_refunded0.0000base_amount_refunded0.0000row_total120.0000base_row_total120.0000row_invoiced0.0000base_row_invoiced0.0000row_weight0.0000base_tax_before_discounttax_before_discountext_order_item_idlocked_do_invoicelocked_do_shipprice_incl_tax130.8000base_price_incl_tax130.8000row_total_incl_tax130.8000base_row_total_incl_tax130.8000hidden_tax_amountbase_hidden_tax_amounthidden_tax_invoicedbase_hidden_tax_invoicedhidden_tax_refundedbase_hidden_tax_refundedis_nominal0tax_canceled10.6700hidden_tax_canceled0.0000tax_refundedbase_tax_refundeddiscount_refundedbase_discount_refundedgift_message_idgift_message_available1base_weee_tax_applied_amount0.0000base_weee_tax_applied_row_amnt0.0000base_weee_tax_applied_row_amount0.0000weee_tax_applied_amount0.0000weee_tax_applied_row_amount0.0000weee_tax_applieda:0:{}weee_tax_disposition0.0000weee_tax_row_disposition0.0000base_weee_tax_disposition0.0000base_weee_tax_row_disposition0.0000event_idgiftregistry_item_idgw_idgw_base_pricegw_pricegw_base_tax_amountgw_tax_amountgw_base_price_invoicedgw_price_invoicedgw_base_tax_amount_invoicedgw_tax_amount_invoicedgw_base_price_refundedgw_price_refundedgw_base_tax_amount_refundedgw_tax_amount_refundedqty_returned0.0000paymentparent_id180base_shipping_capturedshipping_capturedamount_refundedbase_amount_paidamount_canceledbase_amount_authorizedbase_amount_paid_onlinebase_amount_refunded_onlinebase_shipping_amount0.0000shipping_amount0.0000amount_paidamount_authorizedbase_amount_ordered599.2500base_shipping_refundedshipping_refundedbase_amount_refundedamount_ordered599.2500base_amount_canceledquote_payment_idadditional_datacc_exp_month0cc_ss_start_year0echeck_bank_namemethodcheckmocc_debug_request_bodycc_secure_verifyprotection_eligibilitycc_approvalcc_last4cc_status_descriptionecheck_typecc_debug_response_serializedcc_ss_start_month0echeck_account_typelast_trans_idcc_cid_statuscc_ownercc_typepo_numbercc_exp_year0cc_statusecheck_routing_numberaccount_statusanet_trans_methodcc_debug_response_bodycc_ss_issueecheck_account_namecc_avs_statuscc_number_enccc_trans_idpaybox_request_numberaddress_statusadditional_informationcybersource_tokenflo2cash_account_idideal_issuer_idideal_issuer_titleideal_transaction_checkedpaybox_question_numberpayment_id180status_historyparent_id180is_customer_notified2is_visible_on_front0commentstatuscanceledcreated_at2017-06-30 + 12:35:40entity_nameorderstore_id1parent_id180is_customer_notified1is_visible_on_front0commentstatuspendingcreated_at2013-05-25 + 01:58:38entity_nameorderstore_id1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:15:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=ip74ui5i0ejgo05in0fue868u7; expires=Fri, 30-Jun-2017 + 15:15:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + call + + + + + + cc71b22e102c1d28a47b1e9353aa24dd + + + + + + sales_order.addComment + + + + + + + + 100000200 + + pending + + + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['396'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:15:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=cchlff1md770b6vglud5t2ra03; expires=Fri, 30-Jun-2017 + 15:15:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +- request: + body: !!python/unicode ' + + + + endSession + + + + + + cc71b22e102c1d28a47b1e9353aa24dd + + + + + + + + ' + headers: + Accept-Encoding: [gzip] + Content-Length: ['186'] + Content-Type: [text/xml] + User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] + method: POST + uri: http://magento/index.php/api/xmlrpc + response: + body: {string: !!python/unicode ' + + 1'} + headers: + cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] + connection: [keep-alive] + content-type: [text/xml; charset=UTF-8] + date: ['Fri, 30 Jun 2017 14:15:27 GMT'] + expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] + pragma: [no-cache] + server: [nginx/1.10.2] + set-cookie: ['PHPSESSID=u1375lqtmdsbiakiat9pgqp1t7; expires=Fri, 30-Jun-2017 + 15:15:27 GMT; path=/; domain=magento; HttpOnly'] + x-powered-by: [PHP/5.3.3] + status: {code: 200, message: OK} +version: 1 diff --git a/connector_magento/tests/test_address_book.py b/connector_magento/tests/test_address_book.py deleted file mode 100644 index cd3eda94a..000000000 --- a/connector_magento/tests/test_address_book.py +++ /dev/null @@ -1,171 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2013 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp.addons.connector_magento.unit.import_synchronizer import ( - import_batch, - import_record) -from openerp.addons.connector.session import ConnectorSession -import openerp.tests.common as common -from .common import mock_api -from .data_base import magento_base_responses -from .data_address_book import (no_address, - individual_1_address, - individual_2_addresses, - company_1_address, - company_2_addresses) - -DB = common.DB -ADMIN_USER_ID = common.ADMIN_USER_ID - - -class TestImportAddressBook(common.TransactionCase): - """ Test the imports of the address book from a Magento Mock. - """ - - def setUp(self): - super(TestImportAddressBook, self).setUp() - self.backend_model = self.env['magento.backend'] - self.session = ConnectorSession(self.env.cr, self.env.uid, - context=self.env.context) - self.model = self.env['magento.res.partner'] - self.address_model = self.env['magento.address'] - warehouse_id = self.env.ref('stock.warehouse0').id - self.backend_id = self.backend_model.create({ - 'name': 'Test Magento Address book', - 'version': '1.7', - 'location': 'http://anyurl', - 'username': 'guewen', - 'warehouse_id': warehouse_id, - 'password': '42'}).id - with mock_api(magento_base_responses): - import_batch(self.session, 'magento.website', self.backend_id) - import_batch(self.session, 'magento.store', self.backend_id) - import_batch(self.session, 'magento.storeview', self.backend_id) - import_record(self.session, 'magento.res.partner.category', - self.backend_id, 1) - - def test_no_address(self): - """ Import an account without any address """ - with mock_api(no_address): - import_record(self.session, 'magento.res.partner', - self.backend_id, '9999253') - partner = self.model.search([('external_id', '=', '9999253'), - ('backend_id', '=', self.backend_id)]) - self.assertEqual(len(partner), 1) - self.assertEqual(partner.name, 'Benjamin Le Goff') - self.assertEqual(partner.type, 'default') - self.assertEqual(len(partner.child_ids), 0) - - def test_individual_1_address(self): - """ Import an individual (b2c) with 1 billing address """ - with mock_api(individual_1_address): - import_record(self.session, 'magento.res.partner', - self.backend_id, '9999254') - partner = self.model.search([('external_id', '=', '9999254'), - ('backend_id', '=', self.backend_id)]) - self.assertEqual(len(partner), 1) - # Name of the billing address - self.assertEqual(partner.name, 'Ferreira Margaux') - self.assertEqual(partner.type, 'default') - # billing address merged with the partner - self.assertEqual(len(partner.child_ids), 0) - self.assertEqual(len(partner.magento_bind_ids), 1) - self.assertEqual(len(partner.magento_address_bind_ids), 1) - address_bind = partner.magento_address_bind_ids[0] - self.assertEqual(address_bind.external_id, '9999253', - msg="The merged address should be the " - "billing address") - - def test_individual_2_addresses(self): - """ Import an individual (b2c) with 2 addresses """ - with mock_api(individual_2_addresses): - import_record(self.session, 'magento.res.partner', - self.backend_id, '9999255') - partner = self.model.search([('external_id', '=', '9999255'), - ('backend_id', '=', self.backend_id)]) - self.assertEqual(len(partner), 1) - # Name of the billing address - self.assertEqual(partner.name, u'Mace Sébastien') - self.assertEqual(partner.type, 'default') - # billing address merged with the partner, - # second address as a contact - self.assertEqual(len(partner.child_ids), 1) - self.assertEqual(len(partner.magento_bind_ids), 1) - self.assertEqual(len(partner.magento_address_bind_ids), 1) - address_bind = partner.magento_address_bind_ids[0] - self.assertEqual(address_bind.external_id, '9999254', - msg="The merged address should be the " - "billing address") - self.assertEqual(partner.child_ids[0].type, 'delivery', - msg="The shipping address should be of " - "type 'delivery'") - - def test_company_1_address(self): - """ Import an company (b2b) with 1 address """ - with mock_api(company_1_address): - import_record(self.session, 'magento.res.partner', - self.backend_id, '9999256') - partner = self.model.search([('external_id', '=', '9999256'), - ('backend_id', '=', self.backend_id)]) - self.assertEqual(len(partner), 1) - # Company of the billing address - self.assertEqual(partner.name, 'Marechal') - self.assertEqual(partner.type, 'default') - # all addresses as contacts - self.assertEqual(len(partner.child_ids), 1) - self.assertEqual(len(partner.magento_bind_ids), 1) - self.assertEqual(len(partner.magento_address_bind_ids), 0) - self.assertEqual(partner.child_ids[0].type, 'invoice', - msg="The billing address should be of " - "type 'invoice'") - - def test_company_2_addresses(self): - """ Import an company (b2b) with 2 addresses """ - with mock_api(company_2_addresses): - import_record(self.session, 'magento.res.partner', - self.backend_id, '9999257') - partner = self.model.search([('external_id', '=', '9999257'), - ('backend_id', '=', self.backend_id)]) - self.assertEqual(len(partner), 1) - # Company of the billing address - self.assertEqual(partner.name, 'Bertin') - self.assertEqual(partner.type, 'default') - # all addresses as contacts - self.assertEqual(len(partner.child_ids), 2) - self.assertEqual(len(partner.magento_bind_ids), 1) - self.assertEqual(len(partner.magento_address_bind_ids), 0) - - def get_address(external_id): - address = self.address_model.search( - [('external_id', '=', external_id), - ('backend_id', '=', self.backend_id)]) - self.assertEqual(len(address), 1) - return address - # billing address - address = get_address('9999257') - self.assertEqual(address.type, 'invoice', - msg="The billing address should be of " - "type 'invoice'") - # shipping address - address = get_address('9999258') - self.assertEqual(address.type, 'delivery', - msg="The shipping address should be of " - "type 'delivery'") diff --git a/connector_magento/tests/test_concurrent_sync.py b/connector_magento/tests/test_concurrent_sync.py new file mode 100644 index 000000000..8c384d750 --- /dev/null +++ b/connector_magento/tests/test_concurrent_sync.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Copyright 2015-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +import mock + +from odoo import api +from odoo.tests import common +from odoo.modules.registry import RegistryManager + +from odoo.addons.queue_job.exception import RetryableJobError +from odoo.addons.component.core import WorkContext + +from .common import MagentoTestCase + + +class TestConcurrentSync(MagentoTestCase): + + def setUp(self): + super(TestConcurrentSync, self).setUp() + self.registry2 = RegistryManager.get(common.get_db_name()) + self.cr2 = self.registry2.cursor() + self.env2 = api.Environment(self.cr2, self.env.uid, {}) + + @self.addCleanup + def reset_cr2(): + # rollback and close the cursor, and reset the environments + self.env2.reset() + self.cr2.rollback() + self.cr2.close() + + backend2 = mock.MagicMock(name='Backend Record') + backend2._name = 'magento.backend' + backend2.id = self.backend.id + backend2.env = self.env2 + self.backend2 = backend2 + + def test_concurrent_import(self): + api_client = mock.MagicMock(name='Magento API') + api_client.call.return_value = { + 'name': 'Root', + 'description': '', + 'level': '1', + } + work = WorkContext(model_name='magento.product.category', + collection=self.backend, + magento_api=api_client) + importer = work.component_by_name('magento.product.category.importer') + importer.run(1) + + work2 = WorkContext(model_name='magento.product.category', + collection=self.backend2, + magento_api=api_client) + importer2 = work2.component_by_name( + 'magento.product.category.importer' + ) + with self.assertRaises(RetryableJobError): + importer2.run(1) diff --git a/connector_magento/tests/test_export_invoice.py b/connector_magento/tests/test_export_invoice.py index d53c3274d..030ac48f6 100644 --- a/connector_magento/tests/test_export_invoice.py +++ b/connector_magento/tests/test_export_invoice.py @@ -1,231 +1,171 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2013 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import mock - -import openerp.tests.common as common -from openerp import _ -from openerp.addons.connector.session import ConnectorSession -from openerp.addons.connector_magento.unit.import_synchronizer import ( - import_batch, - import_record) -from .common import (mock_api, - mock_job_delay_to_direct, - mock_urlopen_image) -from .data_base import magento_base_responses - - -class TestExportInvoice(common.TransactionCase): +# Copyright 2013-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from .common import MagentoSyncTestCase, recorder + + +class TestExportInvoice(MagentoSyncTestCase): """ Test the export of an invoice to Magento """ def setUp(self): super(TestExportInvoice, self).setUp() - backend_model = self.env['magento.backend'] - self.mag_sale_model = self.env['magento.sale.order'] - self.session = ConnectorSession(self.env.cr, self.env.uid, - context=self.env.context) - warehouse = self.env.ref('stock.warehouse0') - self.backend = backend = backend_model.create( - {'name': 'Test Magento', - 'version': '1.7', - 'location': 'http://anyurl', - 'username': 'guewen', - 'warehouse_id': warehouse.id, - 'password': '42'}) - # payment method needed to import a sale order - workflow = self.env.ref('sale_automatic_workflow.manual_validation') - journal = self.env.ref('account.check_journal') - self.payment_method = self.env['payment.method'].create( - {'name': 'checkmo', - 'create_invoice_on': False, - 'workflow_process_id': workflow.id, - 'import_rule': 'always', - 'journal_id': journal.id}) - self.journal = self.env.ref('account.bank_journal') - self.pay_account = self.env.ref('account.cash') - self.period = self.env.ref('account.period_10') - # import the base informations - with mock_api(magento_base_responses): - import_batch(self.session, 'magento.website', backend.id) - import_batch(self.session, 'magento.store', backend.id) - import_batch(self.session, 'magento.storeview', backend.id) - with mock_urlopen_image(): - import_record(self.session, - 'magento.sale.order', - backend.id, 900000691) + self.sale_binding_model = self.env['magento.sale.order'] + self.payment_mode = self.env['account.payment.mode'].search( + [('name', '=', 'checkmo')], + limit=1, + ) + self.pay_account = self.env['account.account'].search( + [('code', '=', '101501')], + limit=1, + ) + self.order_binding = self._import_record( + 'magento.sale.order', '145000008' + ) + self.order_binding.payment_mode_id = self.payment_mode self.stores = self.backend.mapped('website_ids.store_ids') - sales = self.mag_sale_model.search( - [('backend_id', '=', backend.id), - ('external_id', '=', '900000691')]) - self.assertEqual(len(sales), 1) - self.mag_sale = sales # ignore exceptions on the sale order - self.mag_sale.ignore_exceptions = True - self.mag_sale.openerp_id.action_button_confirm() - sale = self.mag_sale.openerp_id - invoice_id = sale.action_invoice_create() - assert invoice_id + self.order_binding.ignore_exception = True + self.order_binding.odoo_id.action_confirm() + invoice_ids = self.order_binding.odoo_id.action_invoice_create() + assert invoice_ids self.invoice_model = self.env['account.invoice'] - self.invoice = self.invoice_model.browse(invoice_id) + self.invoice = self.invoice_model.browse(invoice_ids) - def test_export_invoice_on_validate(self): - """ Exporting an invoice: when it is validated """ + def test_export_invoice_on_validate_trigger(self): + """ Trigger export of an invoice: when it is validated """ # we setup the stores so they export the invoices as soon # as they are validated (open) self.stores.write({'create_invoice_on': 'open'}) - # this is the consumer called when a 'magento.account.invoice' - # is created, it delay a job to export the invoice - patched = 'openerp.addons.connector_magento.invoice.export_invoice' - # mock.patch prevents to create the job - with mock.patch(patched) as export_invoice: + # prevent to create the job + with self.mock_with_delay() as (delayable_cls, delayable): self._invoice_open() + self.assertEqual(self.invoice.state, 'open') + self.assertEquals(len(self.invoice.magento_bind_ids), 1) - export_invoice.delay.assert_called_with( - mock.ANY, - 'magento.account.invoice', - self.invoice.magento_bind_ids[0].id) + + self.assertEqual(1, delayable_cls.call_count) + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((self.invoice.magento_bind_ids,), delay_args) + + delayable.export_record.assert_called_with() # pay and verify it is NOT called - # mock.patch prevents to create the job - with mock.patch(patched) as export_invoice: + with self.mock_with_delay() as (delayable_cls, delayable): self._pay_and_reconcile() self.assertEqual(self.invoice.state, 'paid') - self.assertFalse(export_invoice.delay.called) + self.assertEqual(0, delayable_cls.call_count) - def test_export_invoice_on_paid(self): - """ Exporting an invoice: when it is paid """ + def test_export_invoice_on_paid_trigger(self): + """ Trigger export of an invoice: when it is paid """ # we setup the stores so they export the invoices as soon # as they are validated (open) self.stores.write({'create_invoice_on': 'paid'}) - # this is the consumer called when a 'magento.account.invoice' - # is created, it delay a job to export the invoice - patched = 'openerp.addons.connector_magento.invoice.export_invoice' - # mock.patch prevents to create the job - with mock.patch(patched) as export_invoice: + # prevent to create the job + with self.mock_with_delay() as (delayable_cls, delayable): self._invoice_open() - self.assertFalse(export_invoice.delay.called) + self.assertEqual(self.invoice.state, 'open') + + self.assertEqual(0, delayable_cls.call_count) # pay and verify it is NOT called - # mock.patch prevents to create the job - with mock.patch(patched) as export_invoice: + with self.mock_with_delay() as (delayable_cls, delayable): self._pay_and_reconcile() + self.assertEqual(self.invoice.state, 'paid') self.assertEquals(len(self.invoice.magento_bind_ids), 1) - export_invoice.delay.assert_called_with( - mock.ANY, 'magento.account.invoice', - self.invoice.magento_bind_ids[0].id) - def test_export_invoice_on_payment_method_validate(self): - """ Exporting an invoice: when it is validated with payment method """ + self.assertEqual(1, delayable_cls.call_count) + + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((self.invoice.magento_bind_ids,), delay_args) + + delayable.export_record.assert_called_with() + + def test_export_invoice_on_payment_mode_validate_trigger(self): + """ Exporting an invoice: when it is validated with payment mode """ # we setup the stores so they export the invoices as soon # as they are validated (open) - self.payment_method.write({'create_invoice_on': 'open'}) + self.payment_mode.write({'create_invoice_on': 'open'}) # ensure we use the option of the payment method, not store self.stores.write({'create_invoice_on': 'paid'}) - # this is the consumer called when a 'magento.account.invoice' - # is created, it delay a job to export the invoice - patched = 'openerp.addons.connector_magento.invoice.export_invoice' - # mock.patch prevents to create the job - with mock.patch(patched) as export_invoice: + with self.mock_with_delay() as (delayable_cls, delayable): self._invoice_open() + self.assertEqual(self.invoice.state, 'open') self.assertEquals(len(self.invoice.magento_bind_ids), 1) - export_invoice.delay.assert_called_with( - mock.ANY, 'magento.account.invoice', - self.invoice.magento_bind_ids[0].id) + + self.assertEqual(1, delayable_cls.call_count) + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((self.invoice.magento_bind_ids,), delay_args) + + delayable.export_record.assert_called_with() # pay and verify it is NOT called - # mock.patch prevents to create the job - with mock.patch(patched) as export_invoice: + with self.mock_with_delay() as (delayable_cls, delayable): self._pay_and_reconcile() self.assertEqual(self.invoice.state, 'paid') - self.assertFalse(export_invoice.delay.called) + self.assertEqual(0, delayable_cls.call_count) - def test_export_invoice_on_payment_method_paid(self): + def test_export_invoice_on_payment_mode_paid_trigger(self): """ Exporting an invoice: when it is paid on payment method """ # we setup the stores so they export the invoices as soon # as they are validated (open) - self.payment_method.write({'create_invoice_on': 'paid'}) + self.payment_mode.write({'create_invoice_on': 'paid'}) # ensure we use the option of the payment method, not store self.stores.write({'create_invoice_on': 'open'}) - # this is the consumer called when a 'magento.account.invoice' - # is created, it delay a job to export the invoice - patched = 'openerp.addons.connector_magento.invoice.export_invoice' - # mock.patch prevents to create the job - with mock.patch(patched) as export_invoice: + with self.mock_with_delay() as (delayable_cls, delayable): self._invoice_open() - self.assertFalse(export_invoice.delay.called) + self.assertEqual(self.invoice.state, 'open') + self.assertEqual(0, delayable_cls.call_count) # pay and verify it is NOT called - # mock.patch prevents to create the job - with mock.patch(patched) as export_invoice: + with self.mock_with_delay() as (delayable_cls, delayable): self._pay_and_reconcile() self.assertEqual(self.invoice.state, 'paid') + self.assertEquals(len(self.invoice.magento_bind_ids), 1) - export_invoice.delay.assert_called_with( - mock.ANY, 'magento.account.invoice', - self.invoice.magento_bind_ids[0].id) + + self.assertEqual(1, delayable_cls.call_count) + + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((self.invoice.magento_bind_ids,), delay_args) + + delayable.export_record.assert_called_with() def _invoice_open(self): - self.invoice.signal_workflow('invoice_open') + self.invoice.action_invoice_open() def _pay_and_reconcile(self): self.invoice.pay_and_reconcile( + self.journal, pay_amount=self.invoice.amount_total, - pay_account_id=self.pay_account.id, - period_id=self.period.id, - pay_journal_id=self.journal.id, - writeoff_acc_id=self.pay_account.id, - writeoff_period_id=self.period.id, - writeoff_journal_id=self.journal.id, - name="Payment for tests of invoice's exports") - - def test_export_invoice_api(self): + writeoff_acc=self.pay_account, + ) + + def test_export_invoice_job(self): """ Exporting an invoice: call towards the Magento API """ - job_path = ('openerp.addons.connector_magento.' - 'invoice.export_invoice') - response = { - 'sales_order_invoice.create': 987654321, - } # we setup the payment method so it exports the invoices as soon # as they are validated (open) - self.payment_method.write({'create_invoice_on': 'open'}) + self.payment_mode.write({'create_invoice_on': 'open'}) self.stores.write({'send_invoice_paid_mail': True}) - with mock_job_delay_to_direct(job_path), \ - mock_api(response, key_func=lambda m, a: m) as calls_done: + with self.mock_with_delay(): self._invoice_open() - # Here we check what call with which args has been done by the - # BackendAdapter towards Magento to create the invoice - self.assertEqual(len(calls_done), 1) - method, (mag_order_id, items, - comment, email, include_comment) = calls_done[0] - self.assertEqual(method, 'sales_order_invoice.create') - self.assertEqual(mag_order_id, '900000691') - self.assertEqual(items, {'1713': 1.0, '1714': 1.0}) - self.assertEqual(comment, _("Invoice Created")) - self.assertEqual(email, True) - self.assertFalse(include_comment) - - self.assertEquals(len(self.invoice.magento_bind_ids), 1) - binding = self.invoice.magento_bind_ids - self.assertEquals(binding.external_id, '987654321') + invoice_binding = self.invoice.magento_bind_ids + self.assertEquals(len(invoice_binding), 1) + + with recorder.use_cassette( + 'test_export_invoice') as cassette: + + invoice_binding.export_record() + + # 1. login, 2. sales_order_invoice.create, 3. endSession + self.assertEqual(3, len(cassette.requests)) + + self.assertEqual( + ('sales_order_invoice.create', + ['145000008', {'598': 1.0}, 'Invoice Created', True, False]), + self.parse_cassette_request(cassette.requests[1].body) + ) diff --git a/connector_magento/tests/test_export_picking.py b/connector_magento/tests/test_export_picking.py index 1d2667aec..35e71e17a 100644 --- a/connector_magento/tests/test_export_picking.py +++ b/connector_magento/tests/test_export_picking.py @@ -1,102 +1,88 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2015 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp import _ -from openerp.addons.connector_magento.unit.import_synchronizer import ( - import_record) -from .common import (mock_api, - mock_job_delay_to_direct, - mock_urlopen_image, - SetUpMagentoSynchronized, - ) -from .data_base import magento_base_responses - - -class TestExportPicking(SetUpMagentoSynchronized): +# Copyright 2014-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from .common import MagentoSyncTestCase, recorder + + +class TestExportPicking(MagentoSyncTestCase): """ Test the export of pickings to Magento """ def setUp(self): super(TestExportPicking, self).setUp() - binding_model = self.env['magento.sale.order'] # import a sales order - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.sale.order', - self.backend_id, 900000691) - self.order_binding = binding_model.search( - [('backend_id', '=', self.backend_id), - ('external_id', '=', '900000691'), - ] + self.order_binding = self._import_record( + 'magento.sale.order', 100000201 ) - self.assertEquals(len(self.order_binding), 1) - self.order_binding.ignore_exceptions = True + self.order_binding.ignore_exception = True # generate sale's picking - self.order_binding.openerp_id.action_button_confirm() + self.order_binding.odoo_id.action_confirm() self.picking = self.order_binding.picking_ids self.assertEquals(len(self.picking), 1) magento_shop = self.picking.sale_id.magento_bind_ids[0].store_id magento_shop.send_picking_done_mail = True - def test_export_complete_picking(self): - """ Exporting a complete picking """ + def test_export_complete_picking_trigger(self): + """ Trigger export of a complete picking """ self.picking.force_assign() - job_path = ('openerp.addons.connector_magento.' - 'stock_picking.export_picking_done') - response = { - 'sales_order_shipment.create': 987654321, - } - # mock 1. When '.delay()' is called on the job, call the function - # directly instead. - # mock 2. Replace the xmlrpc calls by a mock and return - # 'response' values - with mock_job_delay_to_direct(job_path), \ - mock_api(response, key_func=lambda m, a: m) as calls_done: + with self.mock_with_delay() as (delayable_cls, delayable): # Deliver the entire picking, a 'magento.stock.picking' # should be created, then a job is generated that will export - # the picking. Here it is forced to a direct call to Magento - # (which is in fact the mock) - self.picking.action_done() + # the picking. Here the job is not created because we mock + # 'with_delay()' + self.picking.do_transfer() self.assertEquals(self.picking.state, 'done') - # Here we check what call with which args has been done by the - # BackendAdapter towards Magento - self.assertEqual(len(calls_done), 1) - method, (mag_order_id, items, - comment, email, include_comment) = calls_done[0] - self.assertEqual(method, 'sales_order_shipment.create') - self.assertEqual(mag_order_id, '900000691') - # When the picking is complete, we send an empty dict - self.assertEqual(items, {}) - self.assertEqual(comment, _("Shipping Created")) - self.assertEqual(email, True) - self.assertTrue(include_comment) + picking_binding = self.env['magento.stock.picking'].search( + [('odoo_id', '=', self.picking.id), + ('backend_id', '=', self.backend.id)], + ) + self.assertEquals(1, len(picking_binding)) + self.assertEquals('complete', picking_binding.picking_method) + + self.assertEqual(1, delayable_cls.call_count) + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((picking_binding,), delay_args) + + delayable.export_picking_done.assert_called_with( + with_tracking=False + ) + + def test_export_complete_picking_job(self): + """ Exporting a complete picking """ + self.picking.force_assign() + with self.mock_with_delay(): + # Deliver the entire picking, a 'magento.stock.picking' + # should be created, then a job is generated that will export + # the picking. Here the job is not created because we mock + # 'with_delay()' + self.picking.do_transfer() + self.assertEquals(self.picking.state, 'done') + picking_binding = self.env['magento.stock.picking'].search( + [('odoo_id', '=', self.picking.id), + ('backend_id', '=', self.backend.id)], + ) + self.assertEquals(1, len(picking_binding)) + + with recorder.use_cassette( + 'test_export_picking_complete') as cassette: + picking_binding.export_picking_done(with_tracking=False) + + # 1. login, 2. sales_order_shipment.create, + # 3. endSession + self.assertEqual(3, len(cassette.requests)) + + self.assertEqual( + ('sales_order_shipment.create', + ['100000201', {}, 'Shipping Created', True, True]), + self.parse_cassette_request(cassette.requests[1].body) + ) # Check that we have received and bound the magento ID - self.assertEquals(len(self.picking.magento_bind_ids), 1) - binding = self.picking.magento_bind_ids - self.assertEquals(binding.external_id, '987654321') + self.assertEquals(picking_binding.external_id, '987654321') - def test_export_partial_picking(self): - """ Exporting a partial picking """ + def test_export_partial_picking_trigger(self): + """ Trigger export of a partial picking """ # Prepare a partial picking # The sale order contains 2 lines with 1 product each self.picking.force_assign() @@ -104,123 +90,121 @@ def test_export_partial_picking(self): self.picking.pack_operation_ids[0].product_qty = 1 self.picking.pack_operation_ids[1].product_qty = 0 - job_path = ('openerp.addons.connector_magento.' - 'stock_picking.export_picking_done') - response = { - 'sales_order_shipment.create': 987654321, - } - # mock 1. When '.delay()' is called on the job, call the function - # directly instead. - # mock 2. Replace the xmlrpc calls by a mock and return - # 'response' values - with mock_job_delay_to_direct(job_path), \ - mock_api(response, key_func=lambda m, a: m) as calls_done: - # Deliver the partial picking, a 'magento.stock.picking' + with self.mock_with_delay() as (delayable_cls, delayable): + # Deliver the entire picking, a 'magento.stock.picking' # should be created, then a job is generated that will export - # the picking. Here it is forced to a direct call to Magento - # (which is in fact the mock) + # the picking. Here the job is not created because we mock + # 'with_delay()' self.picking.do_transfer() self.assertEquals(self.picking.state, 'done') - # Here we check what call with which args has been done by the - # BackendAdapter towards Magento - self.assertEqual(len(calls_done), 1) - method, (mag_order_id, items, - comment, email, include_comment) = calls_done[0] - self.assertEqual(method, 'sales_order_shipment.create') - self.assertEqual(mag_order_id, '900000691') - # When the picking is partial, we have the details of the - # delivered items - self.assertEqual(items, {'1713': 1.0}) - self.assertEqual(comment, _("Shipping Created")) - self.assertEqual(email, True) - self.assertTrue(include_comment) + picking_binding = self.env['magento.stock.picking'].search( + [('odoo_id', '=', self.picking.id), + ('backend_id', '=', self.backend.id)], + ) + self.assertEquals(1, len(picking_binding)) + self.assertEquals('partial', picking_binding.picking_method) - # Check that we have received and bound the magento ID - self.assertEquals(len(self.picking.magento_bind_ids), 1) - binding = self.picking.magento_bind_ids - self.assertEquals(binding.external_id, '987654321') - - response = { - 'sales_order_shipment.create': 987654322, - } - backorder = self.picking.related_backorder_ids - self.assertEquals(len(backorder), 1) - # Deliver the rest in the remaining picking - backorder.force_assign() - # mock 1. When '.delay()' is called on the job, call the function - # directly instead. - # mock 2. Replace the xmlrpc calls by a mock and return - # 'response' values - with mock_job_delay_to_direct(job_path), \ - mock_api(response, key_func=lambda m, a: m) as calls_done: - # call the direct export instead of 'delay()' - backorder.action_done() - self.assertEquals(self.picking.state, 'done') + self.assertEqual(1, delayable_cls.call_count) + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((picking_binding,), delay_args) + + delayable.export_picking_done.assert_called_with( + with_tracking=False + ) - # Here we check what call with which args has been done by the - # BackendAdapter towards Magento for the remaining picking - self.assertEqual(len(calls_done), 1) - method, (mag_order_id, items, - comment, email, include_comment) = calls_done[0] - self.assertEqual(method, 'sales_order_shipment.create') - self.assertEqual(mag_order_id, '900000691') - self.assertEqual(items, {}) - self.assertEqual(comment, _("Shipping Created")) - self.assertEqual(email, True) - self.assertTrue(include_comment) - - self.assertEquals(len(backorder.magento_bind_ids), 1) - self.assertEquals(backorder.magento_bind_ids.external_id, '987654322') - - def test_export_tracking_after_done(self): - """ A tracking number is exported after the picking is done """ + def test_export_partial_picking_job(self): + """ Exporting a partial picking """ + # Prepare a partial picking + # The sale order contains 2 lines with 1 product each self.picking.force_assign() - job_picking_path = ('openerp.addons.connector_magento.' - 'stock_picking.export_picking_done') - job_tracking_path = ('openerp.addons.connector_magento.' - 'stock_tracking.export_tracking_number') - response = { - 'sales_order_shipment.create': 987654321, - } - # mock 1. When '.delay()' is called on the job, call the function - # directly instead. - # mock 2. Replace the xmlrpc calls by a mock and return - # 'response' values - with mock_job_delay_to_direct(job_picking_path), \ - mock_api(response, key_func=lambda m, a: m) as calls_done: + self.picking.do_prepare_partial() + self.picking.pack_operation_ids[0].product_qty = 1 + self.picking.pack_operation_ids[1].product_qty = 0 + + with self.mock_with_delay(): # Deliver the entire picking, a 'magento.stock.picking' # should be created, then a job is generated that will export - # the picking. Here it is forced to a direct call to Magento - # (which is in fact the mock) - self.picking.action_done() + # the picking. Here the job is not created because we mock + # 'with_delay()' + self.picking.do_transfer() self.assertEquals(self.picking.state, 'done') + picking_binding = self.env['magento.stock.picking'].search( + [('odoo_id', '=', self.picking.id), + ('backend_id', '=', self.backend.id)], + ) + self.assertEquals(1, len(picking_binding)) + + with recorder.use_cassette( + 'test_export_picking_partial') as cassette: + picking_binding.export_picking_done(with_tracking=False) + + # 1. login, 2. sales_order_shipment.create, + # 3. endSession + self.assertEqual(3, len(cassette.requests)) + + self.assertEqual( + ('sales_order_shipment.create', + ['100000201', {'543': 1.0}, 'Shipping Created', True, True]), + self.parse_cassette_request(cassette.requests[1].body) + ) + + # Check that we have received and bound the magento ID + self.assertEquals(picking_binding.external_id, '987654321') + + def test_export_tracking_after_done_trigger(self): + """ Trigger export of a tracking number """ + self.picking.force_assign() + + with self.mock_with_delay(): + self.picking.do_transfer() + self.assertEquals(self.picking.state, 'done') + + picking_binding = self.env['magento.stock.picking'].search( + [('odoo_id', '=', self.picking.id), + ('backend_id', '=', self.backend.id)], + ) + self.assertEquals(1, len(picking_binding)) + + with self.mock_with_delay() as (delayable_cls, delayable): + self.picking.carrier_tracking_ref = 'XYZ' - response = { - 'sales_order_shipment.addTrack': True, - 'sales_order_shipment.getCarriers': ['flatrate'], - } - with mock_job_delay_to_direct(job_tracking_path), \ - mock_api(response, key_func=lambda m, a: m) as calls_done: - # set a tracking number + self.assertEqual(1, delayable_cls.call_count) + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((picking_binding,), delay_args) + + delayable.export_tracking_number.assert_called_with() + + def test_export_tracking_after_done_job(self): + """ Job export of a tracking number """ + self.picking.force_assign() + + with self.mock_with_delay(): + self.picking.do_transfer() + self.assertEquals(self.picking.state, 'done') self.picking.carrier_tracking_ref = 'XYZ' - # Here we check what call with which args has been done by the - # BackendAdapter towards Magento for the remaining picking - self.assertEqual(len(calls_done), 2) - - # first call asks magento which carriers accept the tracking - # numbers, normally magento does not support them on - # flatrate, we lie for the sake of the test - method, (mag_order_id,) = calls_done[0] - self.assertEqual(method, 'sales_order_shipment.getCarriers') - self.assertEqual(mag_order_id, '900000691') - - # the second call add the tracking number on magento - method, (mag_shipment_id, carrier_code, - tracking_title, tracking_number) = calls_done[1] - self.assertEqual(method, 'sales_order_shipment.addTrack') - self.assertEqual(mag_shipment_id, '987654321') - self.assertEqual(carrier_code, 'flatrate') - self.assertEqual(tracking_title, '') - self.assertEqual(tracking_number, 'XYZ') + picking_binding = self.env['magento.stock.picking'].search( + [('odoo_id', '=', self.picking.id), + ('backend_id', '=', self.backend.id)], + ) + self.assertEquals(1, len(picking_binding)) + picking_binding.external_id = '100000035' + + with recorder.use_cassette( + 'test_export_tracking_number') as cassette: + picking_binding.export_tracking_number() + + # 1. login, 2. sales_order_shipment.getCarriers, + # 3. sales_order_shipment.addTrack, 4. endSession + self.assertEqual(4, len(cassette.requests)) + + self.assertEqual( + ('sales_order_shipment.getCarriers', ['100000201']), + self.parse_cassette_request(cassette.requests[1].body) + ) + + self.assertEqual( + ('sales_order_shipment.addTrack', ['100000035', 'ups', '', 'XYZ']), + self.parse_cassette_request(cassette.requests[2].body) + ) diff --git a/connector_magento/tests/test_export_product_stock.py b/connector_magento/tests/test_export_product_stock.py new file mode 100644 index 000000000..2381d5f1a --- /dev/null +++ b/connector_magento/tests/test_export_product_stock.py @@ -0,0 +1,180 @@ +# -*- coding: utf-8 -*- +# Copyright 2015-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from .common import MagentoSyncTestCase, recorder + + +class TestUpdateStockQty(MagentoSyncTestCase): + """ Test the export of pickings to Magento """ + + def _product_change_qty(self, product, new_qty): + wizard_model = self.env['stock.change.product.qty'] + wizard = wizard_model.create({'product_id': product.id, + 'new_quantity': new_qty}) + wizard.change_product_qty() + + def setUp(self): + super(TestUpdateStockQty, self).setUp() + self.binding_product = self._import_record( + 'magento.product.product', 879 + ) + + def test_compute_new_qty(self): + product = self.binding_product.odoo_id + binding = self.binding_product + # start with 0 + self.assertEqual(product.virtual_available, 0.0) + self.assertEqual(binding.magento_qty, 0.0) + + # change to 30 + self._product_change_qty(product, 30) + + # the virtual available is 30, the magento qty has not been + # updated yet + self.assertEqual(product.virtual_available, 30.0) + self.assertEqual(binding.magento_qty, 0.0) + + # search for the new quantities to push to Magento + # we mock the job so we can check it .delay() is called on it + # when the quantity is changed + with self.mock_with_delay() as (delayable_cls, delayable): + binding.recompute_magento_qty() + self.assertEqual(binding.magento_qty, 30.0) + + self.assertEqual(1, delayable_cls.call_count) + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((binding,), delay_args) + self.assertEqual(20, delay_kwargs.get('priority')) + + delayable.export_inventory.assert_called_with( + fields=['magento_qty'], + ) + + def test_compute_new_qty_different_field(self): + stock_field = self.env.ref('stock.field_product_product_qty_available') + self.backend.product_stock_field_id = stock_field + product = self.binding_product.odoo_id + binding = self.binding_product + # start with 0 + self.assertEqual(product.qty_available, 0.0) + self.assertEqual(product.virtual_available, 0.0) + self.assertEqual(binding.magento_qty, 0.0) + + # change to 30 + self._product_change_qty(product, 30) + + # the virtual available is 30, the magento qty has not been + # updated yet + self.assertEqual(product.qty_available, 30.0) + self.assertEqual(product.virtual_available, 30.0) + self.assertEqual(binding.magento_qty, 0.0) + + # create an outgoing move + customer_location = self.env.ref('stock.stock_location_customers') + outgoing = self.env['stock.move'].create({ + 'name': product.name, + 'product_id': product.id, + 'product_uom_qty': 11, + 'product_uom': product.uom_id.id, + 'location_id': self.env.ref('stock.stock_location_stock').id, + 'location_dest_id': customer_location.id, + }) + outgoing.action_confirm() + outgoing.action_assign() + + # the virtual is now 19, available still 30 + self.assertEqual(product.qty_available, 30.0) + self.assertEqual(product.virtual_available, 19.0) + self.assertEqual(binding.magento_qty, 0.0) + + # search for the new quantities to push to Magento + # we mock the job so we can check it .delay() is called on it + # when the quantity is changed + with self.mock_with_delay() as (delayable_cls, delayable): + binding.recompute_magento_qty() + # since we have chose to use the field qty_available on the + # backend, we should have 30 + self.assertEqual(binding.magento_qty, 30.0) + + self.assertEqual(1, delayable_cls.call_count) + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((binding,), delay_args) + self.assertEqual(20, delay_kwargs.get('priority')) + + delayable.export_inventory.assert_called_with( + fields=['magento_qty'], + ) + + def test_export_qty_api(self): + product = self.binding_product.odoo_id + binding = self.binding_product + + self._product_change_qty(product, 30) + with self.mock_with_delay(): # disable job + binding.recompute_magento_qty() + + with recorder.use_cassette( + 'test_product_export_qty') as cassette: + # call the job directly + binding.export_inventory(fields=['magento_qty']) + + # 1. login, 2. oerp_cataloginventory_stock_item.update, + # 3. endSession + self.assertEqual(3, len(cassette.requests)) + + self.assertEqual( + ('oerp_cataloginventory_stock_item.update', + [879, {'qty': 30., 'is_in_stock': 1}]), + self.parse_cassette_request(cassette.requests[1].body) + ) + + def test_export_product_inventory_write(self): + with self.mock_with_delay() as (delayable_cls, delayable): + self.binding_product.write({ + 'magento_qty': 333, + 'backorders': 'yes-and-notification', + 'manage_stock': 'yes', + }) + + self.assertEqual(1, delayable_cls.call_count) + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((self.binding_product,), delay_args) + self.assertEqual(20, delay_kwargs.get('priority')) + + delayable.export_inventory.assert_called_with( + fields=['backorders', 'magento_qty', 'manage_stock'], + ) + + def test_export_product_inventory_write_job(self): + with self.mock_with_delay(): + self.binding_product.write({ + 'magento_qty': 333, + 'backorders': 'yes-and-notification', + 'manage_stock': 'yes', + }) + + with recorder.use_cassette( + 'test_product_export_qty_config') as cassette: + self.binding_product.export_inventory( + fields=['backorders', 'magento_qty', 'manage_stock'] + ) + + # 1. login, 2. oerp_cataloginventory_stock_item.update, + # 3. endSession + self.assertEqual(3, len(cassette.requests)) + + # Here we check what call with which args has been done by the + # BackendAdapter towards Magento to export the new stock + # values + self.assertEqual( + ('oerp_cataloginventory_stock_item.update', + [879, {'qty': 333., + 'is_in_stock': 1, + 'manage_stock': 1, + 'use_config_manage_stock': 0, + 'backorders': 2, + 'use_config_backorders': 0, + }]), + self.parse_cassette_request(cassette.requests[1].body) + ) diff --git a/connector_magento/tests/test_import_metadata.py b/connector_magento/tests/test_import_metadata.py new file mode 100644 index 000000000..3418818ba --- /dev/null +++ b/connector_magento/tests/test_import_metadata.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from .common import MagentoTestCase, recorder + + +class TestImportMetadata(MagentoTestCase): + + def test_import_backend(self): + """ Synchronize initial metadata """ + with recorder.use_cassette('metadata'): + self.backend.synchronize_metadata() + + website_model = self.env['magento.website'] + websites = website_model.search( + [('backend_id', '=', self.backend.id)] + ) + self.assertEqual(len(websites), 2) + + store_model = self.env['magento.store'] + stores = store_model.search([('backend_id', '=', self.backend.id)]) + self.assertEqual(len(stores), 2) + + storeview_model = self.env['magento.storeview'] + storeviews = storeview_model.search( + [('backend_id', '=', self.backend.id)]) + self.assertEqual(len(storeviews), 4) diff --git a/connector_magento/tests/test_import_partner.py b/connector_magento/tests/test_import_partner.py new file mode 100644 index 000000000..f211fddbb --- /dev/null +++ b/connector_magento/tests/test_import_partner.py @@ -0,0 +1,143 @@ +# -*- coding: utf-8 -*- +# Copyright 2015-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from .common import MagentoSyncTestCase, recorder + + +class TestImportPartner(MagentoSyncTestCase): + + def setUp(self): + super(TestImportPartner, self).setUp() + category_model = self.env['res.partner.category'] + existing_category = category_model.create({'name': 'General'}) + self.create_binding_no_export( + 'magento.res.partner.category', + existing_category, + 1 + ) + self.model = self.env['magento.res.partner'] + self.address_model = self.env['magento.address'] + + @recorder.use_cassette + def test_import_partner_no_address(self): + """ Import an partner account without any address """ + self.env['magento.res.partner'].import_record(self.backend, '139') + + partner = self.model.search([('external_id', '=', '139'), + ('backend_id', '=', self.backend.id)]) + self.assertEqual(len(partner), 1) + self.assertEqual(partner.name, 'Benjamin Le Goff') + self.assertEqual(partner.type, 'contact') + self.assertEqual(len(partner.child_ids), 0) + + @recorder.use_cassette + def test_import_partner_individual_1_address(self): + """ Import an individual (b2c) with 1 billing address + + A magento customer is considered an individual if its billing + address has an empty 'company' field + """ + self.env['magento.res.partner'].import_record(self.backend, '136') + partner = self.model.search([('external_id', '=', '136'), + ('backend_id', '=', self.backend.id)]) + self.assertEqual(len(partner), 1) + # Name of the billing address + self.assertEqual(partner.name, 'Jane Doe') + self.assertEqual(partner.type, 'contact') + # billing address merged with the partner + self.assertEqual(len(partner.child_ids), 0) + self.assertEqual(len(partner.magento_bind_ids), 1) + self.assertEqual(len(partner.magento_address_bind_ids), 1) + address_bind = partner.magento_address_bind_ids[0] + self.assertEqual(address_bind.external_id, '92', + msg="The merged address should be the " + "billing address") + + @recorder.use_cassette + def test_import_partner_individual_2_addresses(self): + """ Import an individual (b2c) with 2 addresses + + A magento customer is considered an individual if its billing + address has an empty 'company' field + """ + self.env['magento.res.partner'].import_record(self.backend, '65') + + partner = self.model.search([('external_id', '=', '65'), + ('backend_id', '=', self.backend.id)]) + self.assertEqual(len(partner), 1) + # Name of the billing address + self.assertEqual(partner.name, u'Tay Ray') + self.assertEqual(partner.type, 'contact') + # billing address merged with the partner, + # second address as a contact + self.assertEqual(len(partner.child_ids), 1) + self.assertEqual(len(partner.magento_bind_ids), 1) + self.assertEqual(len(partner.magento_address_bind_ids), 1) + address_bind = partner.magento_address_bind_ids[0] + self.assertEqual(address_bind.external_id, '35', + msg="The merged address should be the " + "billing address") + self.assertEqual(partner.child_ids[0].type, 'delivery', + msg="The shipping address should be of " + "type 'delivery'") + + @recorder.use_cassette + def test_import_partner_company_1_address(self): + """ Import an company (b2b) with 1 address + + A magento customer is considered a company if its billing + address contains something in the 'company' field + """ + self.env['magento.res.partner'].import_record(self.backend, '104') + + partner = self.model.search([('external_id', '=', '104'), + ('backend_id', '=', self.backend.id)]) + self.assertEqual(len(partner), 1) + # Company of the billing address + self.assertEqual(partner.name, 'Drew France') + self.assertEqual(partner.type, 'contact') + # all addresses as contacts + self.assertEqual(len(partner.child_ids), 1) + self.assertEqual(len(partner.magento_bind_ids), 1) + self.assertEqual(len(partner.magento_address_bind_ids), 0) + self.assertEqual(partner.child_ids[0].type, 'invoice', + msg="The billing address should be of " + "type 'invoice'") + + @recorder.use_cassette + def test_import_partner_company_2_addresses(self): + """ Import an company (b2b) with 2 addresses + + A magento customer is considered a company if its billing + address contains something in the 'company' field + """ + self.env['magento.res.partner'].import_record(self.backend, '99') + + partner = self.model.search([('external_id', '=', '99'), + ('backend_id', '=', self.backend.id)]) + self.assertEqual(len(partner), 1) + # Company of the billing address + self.assertEqual(partner.name, 'Clay Lock') + self.assertEqual(partner.type, 'contact') + # all addresses as contacts + self.assertEqual(len(partner.child_ids), 2) + self.assertEqual(len(partner.magento_bind_ids), 1) + self.assertEqual(len(partner.magento_address_bind_ids), 0) + + def get_address(external_id): + address = self.address_model.search( + [('external_id', '=', external_id), + ('backend_id', '=', self.backend.id)]) + self.assertEqual(len(address), 1) + return address + # billing address + address = get_address('68') + self.assertEqual(address.type, 'invoice', + msg="The billing address should be of " + "type 'invoice'") + # shipping address + address = get_address('98') + self.assertEqual(address.type, 'delivery', + msg="The shipping address should be of " + "type 'delivery'") diff --git a/connector_magento/tests/test_import_partner_category.py b/connector_magento/tests/test_import_partner_category.py index 276d99ab9..66860a0b6 100644 --- a/connector_magento/tests/test_import_partner_category.py +++ b/connector_magento/tests/test_import_partner_category.py @@ -1,46 +1,28 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2015 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp.addons.connector_magento.unit.import_synchronizer import ( - import_record) -from .common import mock_api, SetUpMagentoSynchronized -from .data_base import magento_base_responses - - -class TestPartnerCategory(SetUpMagentoSynchronized): +# Copyright 2015-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) +from .common import MagentoSyncTestCase, recorder + + +class TestImportPartnerCategory(MagentoSyncTestCase): + + @recorder.use_cassette def test_import_partner_category(self): """ Import of a partner category """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - import_record(self.session, 'magento.res.partner.category', - backend_id, 2) + self.env['magento.res.partner.category'].import_record( + self.backend, 2 + ) + backend_id = self.backend.id binding_model = self.env['magento.res.partner.category'] category = binding_model.search([('backend_id', '=', backend_id), ('external_id', '=', '2')]) self.assertEqual(len(category), 1) self.assertEqual(category.name, 'Wholesale') - self.assertEqual(category.tax_class_id, 3) + self.assertEqual(category.tax_class_id, 5) + @recorder.use_cassette def test_import_existing_partner_category(self): """ Bind of an existing category with same name""" binding_model = self.env['magento.res.partner.category'] @@ -48,14 +30,14 @@ def test_import_existing_partner_category(self): existing_category = category_model.create({'name': 'Wholesale'}) - backend_id = self.backend_id - with mock_api(magento_base_responses): - import_record(self.session, 'magento.res.partner.category', - backend_id, 2) + self.env['magento.res.partner.category'].import_record( + self.backend, 2 + ) + backend_id = self.backend.id category = binding_model.search([('backend_id', '=', backend_id), ('external_id', '=', '2')]) self.assertEqual(len(category), 1) - self.assertEqual(category.openerp_id, existing_category) + self.assertEqual(category.odoo_id, existing_category) self.assertEqual(category.name, 'Wholesale') - self.assertEqual(category.tax_class_id, 3) + self.assertEqual(category.tax_class_id, 5) diff --git a/connector_magento/tests/test_import_product.py b/connector_magento/tests/test_import_product.py new file mode 100644 index 000000000..147f6f6b3 --- /dev/null +++ b/connector_magento/tests/test_import_product.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from openerp.addons.connector.exception import InvalidDataError +from .common import MagentoSyncTestCase, recorder, mock_urlopen_image + + +class TestImportProduct(MagentoSyncTestCase): + + def setUp(self): + super(TestImportProduct, self).setUp() + + def _create_category(self, name, external_id): + category_model = self.env['product.category'] + category = category_model.create({'name': name}) + self.create_binding_no_export( + 'magento.product.category', category, external_id + ) + + @recorder.use_cassette + def test_import_product(self): + """ Import of a simple product """ + backend_id = self.backend.id + + # create the magento category of this product + self._create_category('Eyewear', 18) + + with mock_urlopen_image(): + # the category of this product has category magento id 18, + # so we already have it + self.env['magento.product.product'].import_record( + self.backend, '337' + ) + + product_model = self.env['magento.product.product'] + product = product_model.search([('backend_id', '=', backend_id), + ('external_id', '=', '337')]) + self.assertEqual(len(product), 1) + + @recorder.use_cassette + def test_import_product_category_missing(self): + """ Import of a simple product when the category is missing """ + backend_id = self.backend.id + self.assertEqual(len(self.env['magento.product.category'].search( + [('backend_id', '=', backend_id)] + )), 0) + + with mock_urlopen_image(): + self.env['magento.product.product'].import_record( + self.backend, '382' + ) + + product_model = self.env['magento.product.product'] + product = product_model.search([('backend_id', '=', backend_id), + ('external_id', '=', '382')]) + self.assertEqual(len(product), 1) + # category should have been imported in cascade + self.assertEqual(len(self.env['magento.product.category'].search( + [('backend_id', '=', backend_id)] + )), 4) + + @recorder.use_cassette + def test_import_product_configurable(self): + """ Import of a configurable product : no need to import it + + The 'configurable' part of the product does not need to be imported, + we import only the variants + """ + backend_id = self.backend.id + + self.env['magento.product.product'].import_record( + self.backend, '408' + ) + + product_model = self.env['magento.product.product'] + products = product_model.search([('backend_id', '=', backend_id), + ('external_id', '=', '408')]) + self.assertEqual(len(products), 0) + + @recorder.use_cassette + def test_import_product_bundle(self): + """ Bundle should fail: not yet supported """ + with self.assertRaises(InvalidDataError): + self.env['magento.product.product'].import_record( + self.backend, '447' + ) + + @recorder.use_cassette + def test_import_product_grouped(self): + """ Grouped should fail: not yet supported """ + with self.assertRaises(InvalidDataError): + self.env['magento.product.product'].import_record( + self.backend, '555' + ) + + @recorder.use_cassette + def test_import_product_virtual(self): + """ Virtual products are created as service products """ + backend_id = self.backend.id + + self.env['magento.product.product'].import_record( + self.backend, '563' + ) + + product_model = self.env['magento.product.product'] + product = product_model.search([('backend_id', '=', backend_id), + ('external_id', '=', '563')]) + self.assertEqual(product.type, 'service') diff --git a/connector_magento/tests/test_import_product_category.py b/connector_magento/tests/test_import_product_category.py new file mode 100644 index 000000000..524604e28 --- /dev/null +++ b/connector_magento/tests/test_import_product_category.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Copyright 2013-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from .common import MagentoSyncTestCase, recorder + + +class TestImportProductCategory(MagentoSyncTestCase): + + @recorder.use_cassette + def test_import_product_category(self): + """ Import of a product category """ + backend_id = self.backend.id + + self.env['magento.product.category'].import_record(self.backend, '1') + + category_model = self.env['magento.product.category'] + category = category_model.search([('backend_id', '=', backend_id)]) + self.assertEqual(len(category), 1) + + @recorder.use_cassette + def test_import_product_category_with_gap(self): + """ Import of a product category when parent categories are missing """ + backend_id = self.backend.id + + self.env['magento.product.category'].import_record(self.backend, '26') + + category_model = self.env['magento.product.category'] + categories = category_model.search([('backend_id', '=', backend_id)]) + # tree: Women > Sale > Default Category > Test Magento (hidden) + self.assertEqual(len(categories), 4) diff --git a/connector_magento/tests/test_import_product_image.py b/connector_magento/tests/test_import_product_image.py index 0c526d9d2..1cdef3ad4 100644 --- a/connector_magento/tests/test_import_product_image.py +++ b/connector_magento/tests/test_import_product_image.py @@ -1,39 +1,21 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2013 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# Copyright 2015-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import urllib2 import mock from base64 import b64encode -from openerp.addons.connector_magento.unit.import_synchronizer import ( - import_batch, import_record) -from openerp.addons.connector.session import ConnectorSession -import openerp.tests.common as common -from .common import mock_api, MockResponseImage -from .data_base import magento_base_responses -from .data_product import simple_product_and_images -from openerp.addons.connector_magento.product import ( +from odoo import models +from odoo.addons.component.core import WorkContext, Component +from odoo.addons.component.tests.common import ( + TransactionComponentRegistryCase, +) +from odoo.addons.connector_magento import components +from odoo.addons.connector_magento.models.product.importer import ( CatalogImageImporter, - ProductProductAdapter, ) +from .common import MockResponseImage # simple square of 4 px filled with green in png, used for the product # images @@ -49,76 +31,133 @@ B64_PNG_IMG_4PX_GREEN = b64encode(PNG_IMG_4PX_GREEN) -class TestImportProductImage(common.TransactionCase): +class TestImportProductImage(TransactionComponentRegistryCase): """ Test the imports of the image of the products. """ def setUp(self): super(TestImportProductImage, self).setUp() - backend_model = self.env['magento.backend'] + self.backend_model = self.env['magento.backend'] warehouse = self.env.ref('stock.warehouse0') - self.backend_id = backend_model.create( + self.backend = self.backend_model.create( {'name': 'Test Magento', 'version': '1.7', - 'location': 'http://anyurl', - 'username': 'guewen', + 'location': 'http://magento', + 'username': 'odoo', 'warehouse_id': warehouse.id, - 'password': '42'}).id - - self.session = ConnectorSession(self.env.cr, self.env.uid, - context=self.env.context) - with mock_api(magento_base_responses): - import_batch(self.session, 'magento.website', self.backend_id) - import_batch(self.session, 'magento.store', self.backend_id) - import_batch(self.session, 'magento.storeview', self.backend_id) - import_record(self.session, 'magento.product.category', - self.backend_id, 1) + 'password': 'odoo42'} + ) + category_model = self.env['product.category'] + existing_category = category_model.create({'name': 'all'}) + self.create_binding_no_export( + 'magento.product.category', + existing_category, + 1 + ) self.product_model = self.env['magento.product.product'] + # Use a stub for the product adapter, which is called + # during the tests by the image importer + class StubProductAdapter(Component): + _name = 'stub.product.adapter' + _collection = 'magento.backend' + _usage = 'backend.adapter' + _apply_on = 'magento.product.product' + + def get_images(self, id, storeview_id=None): + return [ + {'exclude': '1', + 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg', # noqa + 'label': '', + 'position': '0', + 'types': ['thumbnail'], + 'url': 'http://localhost:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg'}, # noqa + {'exclude': '0', + 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg', # noqa + 'label': '', + 'position': '3', + 'types': ['small_image'], + 'url': 'http://localhost:9100/media/catalog/product/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg'}, # noqa + {'exclude': '0', + 'file': '/m/a/connector_magento_1.png', + 'label': '', + 'position': '4', + 'types': [], + 'url': 'http://localhost:9100/media/catalog/product/m/a/connector_magento_1.png'}, # noqa + ] + + # build the Stub and the component we want to test + self._build_components(StubProductAdapter, + components.core.BaseMagentoConnectorComponent, + components.importer.MagentoImporter, + CatalogImageImporter) + self.work = WorkContext(model_name='magento.product.product', + collection=self.backend, + components_registry=self.comp_registry) + self.image_importer = self.work.component_by_name( + 'magento.product.image.importer' + ) + + def create_binding_no_export(self, model_name, odoo_id, external_id=None, + **cols): + if isinstance(odoo_id, models.BaseModel): + odoo_id = odoo_id.id + values = { + 'backend_id': self.backend.id, + 'odoo_id': odoo_id, + 'external_id': external_id, + } + if cols: + values.update(cols) + return self.env[model_name].with_context( + connector_no_export=True + ).create(values) + def test_image_priority(self): """ Check if the images are sorted in the correct priority """ - env = mock.Mock() - importer = CatalogImageImporter(env) file1 = {'file': 'file1', 'types': ['image'], 'position': '10'} file2 = {'file': 'file2', 'types': ['thumbnail'], 'position': '3'} file3 = {'file': 'file3', 'types': ['thumbnail'], 'position': '4'} file4 = {'file': 'file4', 'types': [], 'position': '10'} images = [file2, file1, file4, file3] - self.assertEquals(importer._sort_images(images), + self.assertEquals(self.image_importer._sort_images(images), [file4, file3, file2, file1]) def test_import_images_404(self): """ An image responds a 404 error, skip and take the first valid """ - env = mock.MagicMock() - env.get_connector_unit.return_value = ProductProductAdapter(env) - model = mock.MagicMock(name='model') - model.browse.return_value = model - env.model.with_context.return_value = model - - importer = CatalogImageImporter(env) url_tee1 = ('http://localhost:9100/media/catalog/product' '/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg') url_tee2 = ('http://localhost:9100/media/catalog/product/' 'i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg') + + binding = mock.Mock(name='magento.product.product,999') + binding.id = 999 + binding_no_export = mock.MagicMock( + name='magento.product.product,999:no_export' + ) + binding.with_context.return_value = binding_no_export + with mock.patch('urllib2.urlopen') as urlopen: def image_url_response(url): if url._Request__original in (url_tee1, url_tee2): raise urllib2.HTTPError(url, 404, '404', None, None) else: return MockResponseImage(PNG_IMG_4PX_GREEN) - urlopen.side_effect = image_url_response - with mock_api(simple_product_and_images): - importer.run(122, 999) - model.browse.assert_called_with(999) - model.write.assert_called_with({'image': B64_PNG_IMG_4PX_GREEN}) + self.image_importer.run(111, binding) + + binding.with_context.assert_called_with(connector_no_export=True) + binding_no_export.write.assert_called_with( + {'image': B64_PNG_IMG_4PX_GREEN} + ) def test_import_images_403(self): """ Import a product when an image respond a 403 error, should fail """ - env = mock.MagicMock() - env.get_connector_unit.return_value = ProductProductAdapter(env) - importer = CatalogImageImporter(env) + + binding = mock.Mock(name='magento.product.product,999') + binding.id = 999 + url_tee1 = ('http://localhost:9100/media/catalog/product' '/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg') url_tee2 = ('http://localhost:9100/media/catalog/product/' @@ -134,6 +173,5 @@ def image_url_response(url): return MockResponseImage(PNG_IMG_4PX_GREEN) urlopen.side_effect = image_url_response - with mock_api(simple_product_and_images): - with self.assertRaises(urllib2.HTTPError): - importer.run(122, 999) + with self.assertRaises(urllib2.HTTPError): + self.image_importer.run(122, binding) diff --git a/connector_magento/tests/test_related_action.py b/connector_magento/tests/test_related_action.py index b6c3d9aa3..0a53bad2b 100644 --- a/connector_magento/tests/test_related_action.py +++ b/connector_magento/tests/test_related_action.py @@ -1,41 +1,18 @@ # -*- coding: utf-8 -*- +# Copyright 2014-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + import mock -import openerp -import openerp.tests.common as common -from openerp.addons.connector.queue.job import ( - Job, - OpenERPJobStorage, -) -from openerp.addons.connector.session import ( - ConnectorSession) -from .common import mock_api -from .data_base import magento_base_responses -from ..unit.import_synchronizer import import_batch, import_record -from ..unit.export_synchronizer import export_record +from .common import MagentoSyncTestCase +from odoo import exceptions -class TestRelatedActionStorage(common.TransactionCase): +class TestRelatedActionStorage(MagentoSyncTestCase): """ Test related actions on stored jobs """ def setUp(self): super(TestRelatedActionStorage, self).setUp() - backend_model = self.env['magento.backend'] - self.session = ConnectorSession(self.env.cr, self.env.uid, - context=self.env.context) - warehouse = self.env.ref('stock.warehouse0') - self.backend = backend_model.create( - {'name': 'Test Magento', - 'version': '1.7', - 'location': 'http://anyurl', - 'username': 'username', - 'warehouse_id': warehouse.id, - 'password': '42'}) - # import the base informations - with mock_api(magento_base_responses): - import_batch(self.session, 'magento.website', self.backend.id) - import_batch(self.session, 'magento.store', self.backend.id) - import_batch(self.session, 'magento.storeview', self.backend.id) self.MagentoProduct = self.env['magento.product.product'] self.QueueJob = self.env['queue.job'] @@ -43,10 +20,11 @@ def test_unwrap_binding(self): """ Open a related action opening an unwrapped binding """ product = self.env.ref('product.product_product_7') magento_product = self.MagentoProduct.create( - {'openerp_id': product.id, + {'odoo_id': product.id, 'backend_id': self.backend.id}) - stored = self._create_job(export_record, 'magento.product.product', - magento_product.id) + job = magento_product.with_delay().export_record() + stored = job.db_record() + expected = { 'name': mock.ANY, 'type': 'ir.actions.act_window', @@ -57,19 +35,14 @@ def test_unwrap_binding(self): } self.assertEquals(stored.open_related_action(), expected) - def _create_job(self, func, *args): - job = Job(func=func, args=args) - storage = OpenERPJobStorage(self.session) - storage.store(job) - stored = self.QueueJob.search([('uuid', '=', job.uuid)]) - self.assertEqual(len(stored), 1) - return stored - def test_link(self): """ Open a related action opening an url on Magento """ self.backend.write({'admin_location': 'http://www.example.com/admin'}) - stored = self._create_job(import_record, 'magento.product.product', - self.backend.id, 123456) + job = self.MagentoProduct.with_delay().import_record( + self.backend, '123456' + ) + stored = job.db_record() + url = 'http://www.example.com/admin/catalog_product/edit/id/123456' expected = { 'type': 'ir.actions.act_url', @@ -81,8 +54,10 @@ def test_link(self): def test_link_no_location(self): """ Related action opening an url, admin location is not configured """ self.backend.write({'admin_location': False}) - self.backend.refresh() - stored = self._create_job(import_record, 'magento.product.product', - self.backend.id, 123456) - with self.assertRaises(openerp.exceptions.Warning): + job = self.MagentoProduct.with_delay().import_record( + self.backend, '123456' + ) + stored = job.db_record() + msg = r'No admin URL configured.*' + with self.assertRaisesRegexp(exceptions.UserError, msg): stored.open_related_action() diff --git a/connector_magento/tests/test_sale_order.py b/connector_magento/tests/test_sale_order.py index 8a19b6cb4..25453f15e 100644 --- a/connector_magento/tests/test_sale_order.py +++ b/connector_magento/tests/test_sale_order.py @@ -1,72 +1,151 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2014 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import mock -from openerp.addons.connector_magento.unit.import_synchronizer import ( - import_record) -import openerp.tests.common as common -from .common import (mock_api, - mock_urlopen_image, - SetUpMagentoSynchronized, - ) -from .data_base import magento_base_responses -from .data_guest_order import guest_order_responses -from ..sale import export_state_change - -DB = common.DB -ADMIN_USER_ID = common.ADMIN_USER_ID - - -class TestSaleOrder(SetUpMagentoSynchronized): - - def _import_sale_order(self, increment_id, responses=None): - if responses is None: - responses = magento_base_responses - backend_id = self.backend_id - with mock_api(responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.sale.order', - backend_id, increment_id) - MagentoOrder = self.env['magento.sale.order'] - binding = MagentoOrder.search( - [('backend_id', '=', backend_id), - ('external_id', '=', str(increment_id))] +# Copyright 2014-2017 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from collections import namedtuple +from .common import MagentoSyncTestCase, recorder + +ExpectedOrderLine = namedtuple( + 'ExpectedOrderLine', + 'product_id name price_unit product_uom_qty' +) + + +class TestSaleOrder(MagentoSyncTestCase): + + def setUp(self): + super(TestSaleOrder, self).setUp() + + def _import_sale_order(self, increment_id, cassette=True): + return self._import_record('magento.sale.order', + increment_id, cassette=cassette) + + def test_import_sale_order(self): + """ Import sale order: check """ + binding = self._import_sale_order(100000201) + self.assertEqual(binding.workflow_process_id, self.workflow, + "If the automatic workflow is empty, the " + "onchanges have not been applied.") + + def test_import_sale_order_with_prefix(self): + """ Import sale order with prefix """ + self.backend.write({'sale_prefix': 'EC'}) + binding = self._import_sale_order(100000201) + self.assertEqual(binding.name, 'EC100000201') + + def test_import_sale_order_with_configurable(self): + """ Import sale order with configurable product """ + binding = self._import_sale_order(100000201) + + prod1 = self.env['magento.product.product'].search( + [('external_id', '=', 512), ('backend_id', '=', self.backend.id)] ) - self.assertEqual(len(binding), 1) - return binding + prod2 = self.env['magento.product.product'].search( + [('external_id', '=', 302), ('backend_id', '=', self.backend.id)] + ) + ship = self.env['product.product'].search([('name', '=', 'ups_GND')]) + + expected = [ + ExpectedOrderLine( + product_id=prod1.odoo_id, + name='Tori Tank', + price_unit=60., + product_uom_qty=2., + ), + ExpectedOrderLine( + product_id=prod2.odoo_id, + name='Racer Back Maxi Dress', + price_unit=224., + product_uom_qty=1., + ), + ExpectedOrderLine( + product_id=ship, + name='ups_GND', + price_unit=12.31, + product_uom_qty=1., + ), + ] + + self.assert_records(expected, binding.order_line) + + def test_import_sale_order_copy_quotation(self): + """ Copy a sales order with copy_quotation move bindings """ + binding = self._import_sale_order(100000201) + order = binding.odoo_id + order.action_cancel() + new = order.copy() + self.assertFalse(order.magento_bind_ids) + self.assertEqual(binding.odoo_id, new) + for mag_line in binding.magento_order_line_ids: + self.assertEqual(mag_line.order_id, new) + + def test_import_sale_order_edited(self): + """ Import of an edited sale order links to its parent """ + with recorder.use_cassette('import_sale_order_edited_1'): + binding = self._import_sale_order(100000200, cassette=False) + with recorder.use_cassette('import_sale_order_edited_2'): + new_binding = self._import_sale_order('100000200-1', + cassette=False) + self.assertEqual(new_binding.magento_parent_id, binding) + self.assertTrue(binding.canceled_in_backend) + + def test_import_sale_order_storeview_options(self): + """ Check if storeview options are propagated """ + storeview = self.env['magento.storeview'].search([ + ('backend_id', '=', self.backend.id), + ('external_id', '=', '1') + ]) + team = self.env['crm.team'].create({'name': 'Magento Team'}) + storeview.team_id = team + binding = self._import_sale_order(100000201) + self.assertEqual(binding.team_id, team) - def test_import_options(self): + def test_import_sale_order_guest(self): + binding = self._import_sale_order(145000008) + partner_binding = binding.partner_id.magento_bind_ids + self.assertEqual(partner_binding.external_id, 'guestorder:145000008') + self.assertTrue(partner_binding.guest_customer) + + def test_import_sale_order_carrier_product(self): + """ Product of a carrier is used in the sale line """ + product = self.env['product.product'].create({ + 'name': 'Carrier Product', + }) + self.env['delivery.carrier'].create({ + 'name': 'ups_GND', + 'partner_id': self.env.ref('base.main_partner').id, + 'product_id': product.id, + 'magento_code': 'ups_GND', + 'magento_carrier_code': 'ups_GND', + }) + binding = self._import_sale_order(100000201) + # check if we have a line with the carrier product, + # which is the shipping line + shipping_line = False + for line in binding.order_line: + if line.product_id == product: + shipping_line = True + self.assertTrue(shipping_line, + msg='No shipping line with the product of the carrier ' + 'has been found. Line names: %s' % + (', '.join("%s (%s)" % (line.name, + line.product_id.name) + for line + in binding.order_line),)) + + def test_import_sale_order_options(self): """Test import options such as the account_analytic_account and the fiscal_position that can be specified at different level of the backend models (backend, wesite, store and storeview) """ - binding = self._import_sale_order(900000691) + binding = self._import_sale_order(100000201) self.assertFalse(binding.project_id) - self.assertFalse(binding.fiscal_position) + self.assertFalse(binding.fiscal_position_id) # keep a reference to backend models the website storeview_id = binding.storeview_id store_id = storeview_id.store_id website_id = store_id.website_id - binding.openerp_id.unlink() + binding.odoo_id.unlink() binding.unlink() # define options at the backend level fp1 = self.env['account.fiscal.position'].create({'name': "fp1"}) @@ -74,10 +153,10 @@ def test_import_options(self): {'name': 'aaa1'}) self.backend.account_analytic_id = account_analytic_id self.backend.fiscal_position_id = fp1.id - binding = self._import_sale_order(900000691) + binding = self._import_sale_order(100000201) self.assertEquals(binding.project_id, account_analytic_id) - self.assertEquals(binding.fiscal_position, fp1) - binding.openerp_id.unlink() + self.assertEquals(binding.fiscal_position_id, fp1) + binding.odoo_id.unlink() binding.unlink() # define options at the website level account_analytic_id = self.env['account.analytic.account'].create( @@ -85,10 +164,10 @@ def test_import_options(self): fp2 = self.env['account.fiscal.position'].create({'name': "fp2"}) website_id.specific_account_analytic_id = account_analytic_id website_id.specific_fiscal_position_id = fp2.id - binding = self._import_sale_order(900000691) + binding = self._import_sale_order(100000201) self.assertEquals(binding.project_id, account_analytic_id) - self.assertEquals(binding.fiscal_position, fp2) - binding.openerp_id.unlink() + self.assertEquals(binding.fiscal_position_id, fp2) + binding.odoo_id.unlink() binding.unlink() # define options at the store level account_analytic_id = self.env['account.analytic.account'].create( @@ -96,10 +175,10 @@ def test_import_options(self): fp3 = self.env['account.fiscal.position'].create({'name': "fp3"}) store_id.specific_account_analytic_id = account_analytic_id store_id.specific_fiscal_position_id = fp3.id - binding = self._import_sale_order(900000691) + binding = self._import_sale_order(100000201) self.assertEquals(binding.project_id, account_analytic_id) - self.assertEquals(binding.fiscal_position, fp3) - binding.openerp_id.unlink() + self.assertEquals(binding.fiscal_position_id, fp3) + binding.odoo_id.unlink() binding.unlink() # define options at the storeview level account_analytic_id = self.env['account.analytic.account'].create( @@ -107,181 +186,100 @@ def test_import_options(self): fp4 = self.env['account.fiscal.position'].create({'name': "fp4"}) storeview_id.specific_account_analytic_id = account_analytic_id storeview_id.specific_fiscal_position_id = fp4.id - binding = self._import_sale_order(900000691) + binding = self._import_sale_order(100000201) self.assertEquals(binding.project_id, account_analytic_id) - self.assertEquals(binding.fiscal_position, fp4) + self.assertEquals(binding.fiscal_position_id, fp4) - def test_copy_quotation(self): - """ Copy a sales order with copy_quotation move bindings """ - binding = self._import_sale_order(900000691) - order = binding.openerp_id - action = order.copy_quotation() - new_id = action['res_id'] - self.assertFalse(order.magento_bind_ids) - self.assertEqual(binding.openerp_id.id, new_id) - for mag_line in binding.magento_order_line_ids: - self.assertEqual(mag_line.order_id.id, new_id) - - def test_cancel_delay_job(self): + def test_sale_order_cancel_delay_job(self): """ Cancel an order, delay a cancel job """ - binding = self._import_sale_order(900000691) - order = binding.openerp_id - patched = 'openerp.addons.connector_magento.sale.export_state_change' - # patch the job so it won't be created and we will be able - # to check if it is called - with mock.patch(patched) as mock_export_state_change: + binding = self._import_sale_order(100000201) + with self.mock_with_delay() as (delayable_cls, delayable): + order = binding.odoo_id + order.action_cancel() - called = mock_export_state_change.delay - called.assert_called_with(mock.ANY, - 'magento.sale.order', - binding.id, - allowed_states=['cancel'], - description=mock.ANY) + self.assertEqual(1, delayable_cls.call_count) + delay_args, __ = delayable_cls.call_args + self.assertEqual(binding, delay_args[0]) + + delayable.export_state_change.assert_called_with( + allowed_states=['cancel'], + ) def test_cancel_export(self): """ Export the cancel state """ - binding = self._import_sale_order(900000691) - order = binding.openerp_id - # patch the job so it won't be created - patched = 'openerp.addons.connector_magento.sale.export_state_change' - with mock.patch(patched): + binding = self._import_sale_order(100000201) + with self.mock_with_delay(): + order = binding.odoo_id order.action_cancel() - response = { - 'sales_order.info': {'status': 'new'}, - 'sales_order.addComment': True, - } - with mock_api(response, - key_func=lambda method, args: method) as calls_done: + + with recorder.use_cassette( + 'test_sale_order_cancel_export') as cassette: + # call the job synchronously, so we check the calls - export_state_change(self.session, 'magento.sale.order', - binding.id, allowed_states=['cancel']) + binding.export_state_change(allowed_states=['cancel']) + # 1. login, 2. sales_order.info, + # 3. sales_order.addComment, 4. endSession + self.assertEqual(4, len(cassette.requests)) - # call 1: sales_order.info to read the status - # call 2: sales_order.addComment to add a status comment - self.assertEqual(len(calls_done), 2) - method, (external_id, state) = calls_done[1] - self.assertEqual(method, 'sales_order.addComment') - self.assertEqual(external_id, binding.external_id) - self.assertEqual(state, 'canceled') + self.assertEqual( + ('sales_order.info', ['100000201']), + self.parse_cassette_request(cassette.requests[1].body) + ) + self.assertEqual( + ('sales_order.addComment', ['100000201', 'canceled']), + self.parse_cassette_request(cassette.requests[2].body) + ) def test_copy_quotation_delay_export_state(self): """ Delay a state export on new copy from canceled order """ - binding = self._import_sale_order(900000691) - order = binding.openerp_id + with recorder.use_cassette('import_sale_order_edited_1'): + binding = self._import_sale_order(100000200, cassette=False) + + order = binding.odoo_id # cancel the order - patched = 'openerp.addons.connector_magento.sale.export_state_change' - with mock.patch(patched): - # cancel the sales order, a job exporting the cancel status - # to Magento is normally created (muted here) + with self.mock_with_delay(): + order = binding.odoo_id order.action_cancel() - SaleOrder = self.registry('sale.order') - patched = 'openerp.addons.connector_magento.sale.export_state_change' - with mock.patch(patched) as mock_export_state_change: + with self.mock_with_delay() as (delayable_cls, delayable): # create a copy of quotation, the new order should be linked to # the Magento sales order - action = SaleOrder.copy_quotation(self.cr, self.uid, [order.id]) - new_id = action['res_id'] - binding.refresh() - order = binding.openerp_id - self.assertEqual(order.id, new_id) - - called = mock_export_state_change.delay - called.assert_called_with(mock.ANY, - 'magento.sale.order', - binding.id, - description=mock.ANY) + new = order.copy() + order = binding.odoo_id + self.assertEqual(order, new) + + self.assertEqual(1, delayable_cls.call_count) + delay_args, __ = delayable_cls.call_args + self.assertEqual(binding, delay_args[0]) + + self.assertTrue(delayable.export_state_change.called) def test_copy_quotation_export_state(self): """ Export a new state on new copy from canceled order """ - binding = self._import_sale_order(900000691) - order = binding.openerp_id - SaleOrder = self.registry('sale.order') + with recorder.use_cassette('import_sale_order_edited_1'): + binding = self._import_sale_order(100000200, cassette=False) # cancel the order - patched = 'openerp.addons.connector_magento.sale.export_state_change' - with mock.patch(patched): - # cancel the sales order, a job exporting the cancel status - # to Magento is normally created (muted here) + with self.mock_with_delay(): + order = binding.odoo_id order.action_cancel() + order = order.copy() - # create a copy of quotation, the new order should be linked to - # the Magento sales order - action = SaleOrder.copy_quotation(self.cr, self.uid, [order.id]) - new_id = action['res_id'] - binding.refresh() - order = binding.openerp_id - self.assertEqual(order.id, new_id) - - # we will check if the correct messages are sent to Magento - response = { - 'sales_order.info': {'status': 'canceled'}, - 'sales_order.addComment': True, - } - with mock_api(response, - key_func=lambda method, args: method) as calls_done: - # call the job synchronously, so we check the calls - export_state_change(self.session, 'magento.sale.order', - binding.id) - - # call 1: sales_order.info to read the status - # call 2: sales_order.addComment to add a status comment - self.assertEqual(len(calls_done), 2) - method, (external_id, state) = calls_done[1] - self.assertEqual(method, 'sales_order.addComment') - self.assertEqual(external_id, binding.external_id) - self.assertEqual(state, 'pending') - - def test_import_edited(self): - """ Import of an edited sale order links to its parent """ - binding = self._import_sale_order(900000691) - new_binding = self._import_sale_order('900000691-1') - self.assertEqual(new_binding.magento_parent_id, binding) - self.assertTrue(binding.canceled_in_backend) + with recorder.use_cassette( + 'test_sale_order_reopen_export') as cassette: - def test_import_storeview_options(self): - """ Check if storeview options are propagated """ - storeview = self.env['magento.storeview'].search([ - ('backend_id', '=', self.backend_id), - ('external_id', '=', '1') - ]) - team = self.env['crm.team'].create({'name': 'Magento Team'}) - storeview.team_id = team - binding = self._import_sale_order(900000691) - self.assertEqual(binding.team_id, team) - - def test_import_guest_order(self): - binding = self._import_sale_order(900000700, - responses=[magento_base_responses, - guest_order_responses]) - partner_binding = binding.partner_id.magento_bind_ids - self.assertEqual(partner_binding.external_id, 'guestorder:900000700') - self.assertTrue(partner_binding.guest_customer) + # call the job synchronously, so we check the calls + binding.export_state_change() + # 1. login, 2. sales_order.info, + # 3. sales_order.addComment, 4. endSession + self.assertEqual(4, len(cassette.requests)) - def test_import_carrier_product(self): - """ Product of a carrier is used in the sale line """ - product = self.env['product.product'].create({ - 'name': 'Carrier Product', - }) - self.env['delivery.carrier'].create({ - 'name': 'Flatrate', - 'partner_id': self.env.ref('base.main_partner').id, - 'product_id': product.id, - 'magento_code': 'flatrate_flatrate', - 'magento_carrier_code': 'flatrate_flatrate', - }) - binding = self._import_sale_order(900000691) - # check if we have a line with the carrier product, - # which is the shipping line - shipping_line = False - for line in binding.order_line: - if line.product_id == product: - shipping_line = True - self.assertTrue(shipping_line, - msg='No shipping line with the product of the carrier ' - 'has been found. Line names: %s' % - (', '.join("%s (%s)" % (line.name, - line.product_id.name) - for line - in binding.order_line),)) + self.assertEqual( + ('sales_order.info', ['100000200']), + self.parse_cassette_request(cassette.requests[1].body) + ) + self.assertEqual( + ('sales_order.addComment', ['100000200', 'pending']), + self.parse_cassette_request(cassette.requests[2].body) + ) diff --git a/connector_magento/tests/test_synchronization.py b/connector_magento/tests/test_synchronization.py deleted file mode 100644 index 52b7a467a..000000000 --- a/connector_magento/tests/test_synchronization.py +++ /dev/null @@ -1,325 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2013 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -import mock - -from openerp import api -from openerp.modules.registry import RegistryManager -from openerp.tests.common import get_db_name -from openerp.addons.connector.connector import ConnectorEnvironment -from openerp.addons.connector.exception import ( - InvalidDataError, - RetryableJobError, -) -from openerp.addons.connector.session import ConnectorSession -from openerp.addons.connector_magento.unit.import_synchronizer import ( - import_batch, - import_record) -from openerp.addons.connector_magento.product_category import ( - ProductCategoryImporter, -) -from .common import (mock_api, - mock_urlopen_image, - SetUpMagentoBase, - SetUpMagentoSynchronized, - ) -from .data_base import magento_base_responses - - -class TestBaseMagento(SetUpMagentoBase): - - def test_import_backend(self): - """ Synchronize initial metadata """ - with mock_api(magento_base_responses): - import_batch(self.session, 'magento.website', self.backend_id) - import_batch(self.session, 'magento.store', self.backend_id) - import_batch(self.session, 'magento.storeview', self.backend_id) - - website_model = self.env['magento.website'] - websites = website_model.search([('backend_id', '=', self.backend_id)]) - self.assertEqual(len(websites), 2) - - store_model = self.env['magento.store'] - stores = store_model.search([('backend_id', '=', self.backend_id)]) - self.assertEqual(len(stores), 2) - - storeview_model = self.env['magento.storeview'] - storeviews = storeview_model.search( - [('backend_id', '=', self.backend_id)]) - self.assertEqual(len(storeviews), 4) - - # TODO; install & configure languages on storeviews - - -class TestImportMagento(SetUpMagentoSynchronized): - """ Test the imports from a Magento Mock. """ - - def test_import_product_category(self): - """ Import of a product category """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - import_record(self.session, 'magento.product.category', - backend_id, 1) - - category_model = self.env['magento.product.category'] - category = category_model.search([('backend_id', '=', backend_id)]) - self.assertEqual(len(category), 1) - - def test_import_product_category_with_gap(self): - """ Import of a product category when parent categories are missing """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - import_record(self.session, 'magento.product.category', - backend_id, 8) - - category_model = self.env['magento.product.category'] - categories = category_model.search([('backend_id', '=', backend_id)]) - self.assertEqual(len(categories), 4) - - def test_import_product(self): - """ Import of a simple product """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.product.product', - backend_id, 16) - - product_model = self.env['magento.product.product'] - product = product_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '16')]) - self.assertEqual(len(product), 1) - - def test_import_product_category_missing(self): - """ Import of a simple product when the category is missing """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.product.product', - backend_id, 25) - - product_model = self.env['magento.product.product'] - product = product_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '25')]) - self.assertEqual(len(product), 1) - - def test_import_product_configurable(self): - """ Import of a configurable product : no need to import it """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.product.product', - backend_id, 126) - - product_model = self.env['magento.product.product'] - products = product_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '126')]) - self.assertEqual(len(products), 0) - - def test_import_product_bundle(self): - """ Bundle should fail: not yet supported """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - with self.assertRaises(InvalidDataError): - import_record(self.session, - 'magento.product.product', - backend_id, 165) - - def test_import_product_grouped(self): - """ Grouped should fail: not yet supported """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - with self.assertRaises(InvalidDataError): - import_record(self.session, - 'magento.product.product', - backend_id, 54) - - def test_import_product_virtual(self): - """ Virtual products are created as service products """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - import_record(self.session, - 'magento.product.product', - backend_id, 144) - - product_model = self.env['magento.product.product'] - product = product_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '144')]) - self.assertEqual(product.type, 'service') - - def test_import_sale_order(self): - """ Import sale order: check """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.sale.order', - backend_id, 900000691) - order_model = self.env['magento.sale.order'] - order = order_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '900000691')]) - self.assertEqual(len(order), 1) - self.assertEqual(order.payment_term, self.payment_term, - "If the payment term is empty, the onchanges have not" - " been applied.") - - def test_import_sale_order_no_website_id(self): - """ Import sale order: website_id is missing, happens with magento """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.sale.order', - backend_id, 900000692) - order_model = self.env['magento.sale.order'] - order = order_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '900000692')]) - self.assertEqual(len(order), 1) - - def test_import_sale_order_with_prefix(self): - """ Import sale order with prefix """ - backend = self.backend_model.browse(self.backend_id) - backend.write({'sale_prefix': 'EC'}) - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.sale.order', - backend.id, 900000693) - order_model = self.env['magento.sale.order'] - order = order_model.search([('backend_id', '=', backend.id), - ('external_id', '=', '900000693')]) - self.assertEqual(len(order), 1) - self.assertEqual(order.name, 'EC900000693') - - def test_import_sale_order_with_configurable(self): - """ Import sale order with configurable product """ - backend_id = self.backend_id - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.sale.order', - backend_id, 900000694) - mag_order_model = self.env['magento.sale.order'] - mag_order = mag_order_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '900000694')]) - self.assertEqual(len(mag_order), 1) - mag_order_line_model = self.env['magento.sale.order.line'] - mag_order_line = mag_order_line_model.search( - [('backend_id', '=', backend_id), - ('magento_order_id', '=', mag_order.id)]) - self.assertEqual(len(mag_order_line), 1) - order_line = mag_order_line.openerp_id - price_unit = order_line.price_unit - self.assertAlmostEqual(price_unit, 41.0500) - - def test_import_sale_order_with_taxes_included(self): - """ Import sale order with taxes included """ - backend_id = self.backend_id - storeview_model = self.env['magento.storeview'] - storeview = storeview_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '1')]) - storeview.write({'catalog_price_tax_included': True}) - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.sale.order', - backend_id, 900000695) - mag_order_model = self.env['magento.sale.order'] - mag_order = mag_order_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '900000695')]) - self.assertEqual(len(mag_order), 1) - order = mag_order.openerp_id - amount_total = order.amount_total - # 97.5 is the amount_total if connector takes correctly included - # tax prices. - self.assertAlmostEqual(amount_total, 97.5000) - - def test_import_sale_order_with_discount(self): - """ Import sale order with discounts""" - backend_id = self.backend_id - storeview_model = self.env['magento.storeview'] - storeview = storeview_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '2')]) - storeview.write({'catalog_price_tax_included': True}) - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.sale.order', - backend_id, 900000696) - mag_order_model = self.env['magento.sale.order'] - mag_order = mag_order_model.search([('backend_id', '=', backend_id), - ('external_id', '=', '900000696')]) - self.assertEqual(len(mag_order), 1) - order = mag_order.openerp_id - self.assertAlmostEqual(order.amount_total, 36.9500) - - for line in order.order_line: - if line.name == 'Item 1': - self.assertAlmostEqual(line.discount, 11.904) - elif line.name == 'Item 2': - self.assertAlmostEqual(line.discount, 11.957) - else: - self.fail('encountered unexpected sale ' - 'order line %s' % line.name) - - -class TestImportMagentoConcurrentSync(SetUpMagentoSynchronized): - - def setUp(self): - super(TestImportMagentoConcurrentSync, self).setUp() - self.registry2 = RegistryManager.get(get_db_name()) - self.cr2 = self.registry2.cursor() - self.env2 = api.Environment(self.cr2, self.env.uid, {}) - backend2 = mock.MagicMock(name='Backend Record') - backend2._name = 'magento.backend' - backend2.id = self.backend_id - self.backend2 = backend2 - self.connector_session2 = ConnectorSession.from_env(self.env2) - - @self.addCleanup - def reset_cr2(): - # rollback and close the cursor, and reset the environments - self.env2.reset() - self.cr2.rollback() - self.cr2.close() - - def test_concurrent_import(self): - connector_env = ConnectorEnvironment( - self.backend, - self.session, - 'magento.product.category' - ) - importer = ProductCategoryImporter(connector_env) - with mock_api(magento_base_responses): - importer.run(1) - - connector_env2 = ConnectorEnvironment( - self.backend2, - self.connector_session2, - 'magento.product.category' - ) - importer2 = ProductCategoryImporter(connector_env2) - fields_path = ('openerp.addons.connector_magento' - '.unit.import_synchronizer.fields') - with mock.patch(fields_path): - with self.assertRaises(RetryableJobError): - importer2.run(1) diff --git a/connector_magento/tests/test_update_product_stock.py b/connector_magento/tests/test_update_product_stock.py deleted file mode 100644 index 4c247feca..000000000 --- a/connector_magento/tests/test_update_product_stock.py +++ /dev/null @@ -1,201 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Guewen Baconnier -# Copyright 2015 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import mock - -from openerp.addons.connector_magento.unit.import_synchronizer import ( - import_record) -from .common import (mock_api, - mock_job_delay_to_direct, - mock_urlopen_image, - SetUpMagentoSynchronized, - ) -from .data_base import magento_base_responses - - -class TestUpdateStockQty(SetUpMagentoSynchronized): - """ Test the export of pickings to Magento """ - - def _product_change_qty(self, product, new_qty): - wizard_model = self.env['stock.change.product.qty'] - wizard = wizard_model.create({'product_id': product.id, - 'new_quantity': new_qty}) - wizard.change_product_qty() - - def setUp(self): - super(TestUpdateStockQty, self).setUp() - with mock_api(magento_base_responses): - with mock_urlopen_image(): - import_record(self.session, - 'magento.product.product', - self.backend_id, 16) - product_model = self.env['magento.product.product'] - self.binding_product = product_model.search( - [('backend_id', '=', self.backend_id), - ('external_id', '=', '16')]) - self.assertEqual(len(self.binding_product), 1) - - def test_compute_new_qty(self): - product = self.binding_product.openerp_id - binding = self.binding_product - # start with 0 - self.assertEqual(product.virtual_available, 0.0) - self.assertEqual(binding.magento_qty, 0.0) - - # change to 30 - self._product_change_qty(product, 30) - - # the virtual available is 30, the magento qty has not been - # updated yet - self.assertEqual(product.virtual_available, 30.0) - self.assertEqual(binding.magento_qty, 0.0) - - # search for the new quantities to push to Magento - # we mock the job so we can check it .delay() is called on it - # when the quantity is changed - patched = ('openerp.addons.connector_magento.' - 'product.export_product_inventory') - with mock.patch(patched) as export_product_inventory: - binding.recompute_magento_qty() - self.assertEqual(binding.magento_qty, 30.0) - export_product_inventory.delay.assert_called_with( - mock.ANY, - 'magento.product.product', - binding.id, - priority=20, - fields=['magento_qty']) - - def test_compute_new_qty_different_field(self): - stock_field = self.env.ref('stock.field_product_product_qty_available') - self.backend.product_stock_field_id = stock_field - product = self.binding_product.openerp_id - binding = self.binding_product - # start with 0 - self.assertEqual(product.qty_available, 0.0) - self.assertEqual(product.virtual_available, 0.0) - self.assertEqual(binding.magento_qty, 0.0) - - # change to 30 - self._product_change_qty(product, 30) - - # the virtual available is 30, the magento qty has not been - # updated yet - self.assertEqual(product.qty_available, 30.0) - self.assertEqual(product.virtual_available, 30.0) - self.assertEqual(binding.magento_qty, 0.0) - - # create an outgoing move - customer_location = self.env.ref('stock.stock_location_customers') - outgoing = self.env['stock.move'].create({ - 'name': product.name, - 'product_id': product.id, - 'product_uom_qty': 11, - 'product_uom': product.uom_id.id, - 'location_id': self.env.ref('stock.stock_location_stock').id, - 'location_dest_id': customer_location.id, - }) - outgoing.action_confirm() - outgoing.action_assign() - - # the virtual is now 19, available still 30 - self.assertEqual(product.qty_available, 30.0) - self.assertEqual(product.virtual_available, 19.0) - self.assertEqual(binding.magento_qty, 0.0) - - # search for the new quantities to push to Magento - # we mock the job so we can check it .delay() is called on it - # when the quantity is changed - patched = ('openerp.addons.connector_magento.' - 'product.export_product_inventory') - with mock.patch(patched) as export_product_inventory: - binding.recompute_magento_qty() - # since we have chose to use the field qty_available on the - # backend, we should have 30 - self.assertEqual(binding.magento_qty, 30.0) - export_product_inventory.delay.assert_called_with( - mock.ANY, - 'magento.product.product', - binding.id, - priority=20, - fields=['magento_qty']) - - def test_export_qty_api(self): - product = self.binding_product.openerp_id - binding = self.binding_product - - job_path = ('openerp.addons.connector_magento.' - 'product.export_product_inventory') - response = { - 'oerp_cataloginventory_stock_item.update': True, - } - - self._product_change_qty(product, 30) - # mock 1. When '.delay()' is called on the job, call the function - # directly instead. - # mock 2. Replace the xmlrpc calls by a mock and return - # 'response' values - with mock_job_delay_to_direct(job_path), \ - mock_api(response, key_func=lambda m, a: m) as calls_done: - binding.recompute_magento_qty() - - # Here we check what call with which args has been done by the - # BackendAdapter towards Magento to export the new stock - # values - self.assertEqual(len(calls_done), 1) - method, (product_id, stock_data) = calls_done[0] - self.assertEqual(method, 'oerp_cataloginventory_stock_item.update') - self.assertEqual(product_id, 16) - self.assertEqual(stock_data, {'qty': 30.0, 'is_in_stock': 1}) - - def test_export_qty_api_on_write(self): - - job_path = ('openerp.addons.connector_magento.' - 'product.export_product_inventory') - response = { - 'oerp_cataloginventory_stock_item.update': True, - } - - # mock 1. When '.delay()' is called on the job, call the function - # directly instead. - # mock 2. Replace the xmlrpc calls by a mock and return - # 'response' values - with mock_job_delay_to_direct(job_path), \ - mock_api(response, key_func=lambda m, a: m) as calls_done: - self.binding_product.write({ - 'magento_qty': 333, - 'backorders': 'yes-and-notification', - 'manage_stock': 'yes', - }) - - # Here we check what call with which args has been done by the - # BackendAdapter towards Magento to export the new stock - # values - self.assertEqual(len(calls_done), 1) - method, (product_id, stock_data) = calls_done[0] - self.assertEqual(method, 'oerp_cataloginventory_stock_item.update') - self.assertEqual(product_id, 16) - self.assertEqual(stock_data, {'qty': 333.0, - 'is_in_stock': 1, - 'manage_stock': 1, - 'use_config_manage_stock': 0, - 'backorders': 2, - 'use_config_backorders': 0, - }) From 626bd58aa7a27403e7d9a8e0e1c1fb7479fad1c1 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Tue, 11 Jul 2017 11:57:16 +0200 Subject: [PATCH 07/31] Update documentation --- connector_magento/CHANGES.rst | 137 ------ connector_magento/components/core.py | 4 + connector_magento/doc/api/api_backend.rst | 7 - .../doc/api/api_backend_adapter.rst | 7 - connector_magento/doc/api/api_binder.rst | 7 - connector_magento/doc/api/api_components.rst | 77 ++++ connector_magento/doc/api/api_connector.rst | 7 - connector_magento/doc/api/api_consumer.rst | 7 - connector_magento/doc/api/api_delivery.rst | 7 - connector_magento/doc/api/api_exception.rst | 9 +- connector_magento/doc/api/api_invoice.rst | 7 - .../doc/api/api_magento_model.rst | 7 - connector_magento/doc/api/api_models.rst | 222 ++++++++++ connector_magento/doc/api/api_partner.rst | 7 - .../doc/api/api_partner_category.rst | 7 - connector_magento/doc/api/api_product.rst | 7 - .../doc/api/api_product_category.rst | 7 - connector_magento/doc/api/api_sale.rst | 7 - .../doc/api/api_stock_picking.rst | 7 - .../doc/api/api_stock_tracking.rst | 7 - .../doc/api/api_synchronizer.rst | 26 -- connector_magento/doc/conf.py | 60 ++- .../doc/guides/installation_guide.rst | 32 +- .../doc/guides/key_questions.rst | 8 +- .../doc/guides/monitor_resolve_jobs.rst | 33 +- .../doc/guides/tutorial_customize.rst | 252 +++-------- .../doc/guides/tutorial_development.rst | 401 ------------------ .../howto/configure_automatic_workflows.rst | 2 +- .../doc/howto/configure_exception_rules.rst | 2 +- .../doc/howto/configure_payment_methods.rst | 14 - .../doc/howto/configure_payment_modes.rst | 14 + .../doc/howto/configure_pricing.rst | 41 -- .../doc/howto/configure_shipping_methods.rst | 2 +- .../doc/howto/configure_taxes.rst | 4 +- connector_magento/doc/index.rst | 52 +-- connector_magento/doc/project/changes.rst | 8 - connector_magento/doc/project/contribute.rst | 117 +---- .../models/magento_backend/importer.py | 1 + .../models/magento_binding/common.py | 2 +- .../models/product_category/importer.py | 3 +- 40 files changed, 492 insertions(+), 1136 deletions(-) delete mode 100644 connector_magento/CHANGES.rst delete mode 100644 connector_magento/doc/api/api_backend.rst delete mode 100644 connector_magento/doc/api/api_backend_adapter.rst delete mode 100644 connector_magento/doc/api/api_binder.rst create mode 100644 connector_magento/doc/api/api_components.rst delete mode 100644 connector_magento/doc/api/api_connector.rst delete mode 100644 connector_magento/doc/api/api_consumer.rst delete mode 100644 connector_magento/doc/api/api_delivery.rst delete mode 100644 connector_magento/doc/api/api_invoice.rst delete mode 100644 connector_magento/doc/api/api_magento_model.rst create mode 100644 connector_magento/doc/api/api_models.rst delete mode 100644 connector_magento/doc/api/api_partner.rst delete mode 100644 connector_magento/doc/api/api_partner_category.rst delete mode 100644 connector_magento/doc/api/api_product.rst delete mode 100644 connector_magento/doc/api/api_product_category.rst delete mode 100644 connector_magento/doc/api/api_sale.rst delete mode 100644 connector_magento/doc/api/api_stock_picking.rst delete mode 100644 connector_magento/doc/api/api_stock_tracking.rst delete mode 100644 connector_magento/doc/api/api_synchronizer.rst delete mode 100644 connector_magento/doc/guides/tutorial_development.rst delete mode 100644 connector_magento/doc/howto/configure_payment_methods.rst create mode 100644 connector_magento/doc/howto/configure_payment_modes.rst delete mode 100644 connector_magento/doc/howto/configure_pricing.rst delete mode 100644 connector_magento/doc/project/changes.rst diff --git a/connector_magento/CHANGES.rst b/connector_magento/CHANGES.rst deleted file mode 100644 index b33a89333..000000000 --- a/connector_magento/CHANGES.rst +++ /dev/null @@ -1,137 +0,0 @@ -Changelog ---------- - -3.0.0 (2015-06-02) -~~~~~~~~~~~~~~~~~~ - -* Migrated on the new Odoo API and the new Connector API -* Extended the test coverage -* Show the failed calls in the logger with the ERROR level -* New Docker image for Magento, mentionned in the documentation -* Allow to choose a default sales team for sales orders on the storeviews -* Lot of improvements/cleaning of the code -* The binders can now return records (new ``browse`` argument) -* The Importer now pass the binding report instead of the binding_id - internally -* Remove sale.shop - -2.5.0 (2015-01-06) -~~~~~~~~~~~~~~~~~~ - -* The option for tax inclusion is now configurable by storeview #74 -* Add a backend adapter for the product categories #58 -* Add basic units to allow handling bundle products in submodules #13 -* Add mechanisms for the export of records (lock of bindings, helper for dependencies export) #33 -* 'New copy from quotation' rebinds the Magento order with the new copy #9 -* Better memory footprint and performance on update of stock quantity #11 -* Fix: Magento sometimes returns no invoice id #29 -* Fix: discount_amount with a None value #70 -* Fix: mapping for res.partner.title too broad (mix up "Herr and Herr Dr." #68 -* Fix: error when a binding have a ID "0" which happens with Magento #61 -* Fix: allow to copy a stock picking #60 -* Fix: compatibility with the fiscal position rules module #42 -* Fix: Prevent to create duplicate bindings on invoices #39 -* Fix: Remove trailing None on calls made to the Magento's API (PHP 5.4 compatibility) #28 -* Fix: avoid to send twice a tracking number #16 -* Fix: when a tracking's job is executed before the export of the picking, the tracking's job export the picking #16 -* Fix: replace nltk by Beautifulsoup #40 -* Fix: Add a 'to date' boundary to batch jobs #17 - -2.4.2 (2014-06-16) -~~~~~~~~~~~~~~~~~~ - -* Fix: AssertionError: Several classes found for with session , model name: magento.product.product. Found: set([, ]) - -2.4.1 (2014-06-10) -~~~~~~~~~~~~~~~~~~ - -* Fix: Binders should find records even if they are inactive (lp:1323719) - -2.4.0 (2014-05-26) -~~~~~~~~~~~~~~~~~~ - -* New helper in importer to import dependencies -* allow to customize the available versions without overriding the 'version' field -* New option 'Create Invoice On' on payment methods with options 'on paid', 'on validate' -* Using Magento on PHP 5.4 without using the compatibility patch would - break syncs'. Correct solution is to install the patch on Magento - though! http://magento.com/blog/magento-news/magento-now-supports-php-54 -* Allow to use HTTP Auth Basic to connect to the Magento API -* Retry jobs when they hit a 502, 503 or 504 error -* Added missing scheduler for import of products -* Fix: calculate correctly the discount ratio on sales order lines (lp:1201590) -* Possibility to exclude products from stock synchronizations -* Products disabled on Magento are imported disabled on OpenERP. An additional module allows more options. -* Possibility to disable import of sales orders per storeview -* Related Actions: open the form view on the record concerned by an export job, or open the Magento's admin page - on importing jobs -* Special order lines (shipping, ...) are now the last lines of an order, not the first - - -2.3.1 (2014-01-23) -~~~~~~~~~~~~~~~~~~ - -* Do not fail when a None value is given instead of a float when importing special lines of sales orders. (https://launchpad.net/bugs/1271537) - - -2.3.0 (2014-01-15 warning: API changes) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Compatibility with the Connector Framework: listeners 'on_record_create' receives - an additional argument 'vals'; 'on_record_write's named argument 'fields' becomes 'vals' - and receives the full dictionary of values -* Fix: wrong main image imported on products (https://launchpad.net/bugs/1258418) -* Changes calls to Mapper according to the new API of the Mappers. - See branch: https://code.launchpad.net/~openerp-connector-core-editors/openerp-connector/7.0-connector-mapper-refactor -* Fix: mismatch between tax excluding and tax including amount, new configuration option (https://launchpad.net/bugs/1234117) -* Fix: mismatch between tax excluding and tax including amount, new configuration option (https://launchpad.net/bugs/1234117) -* Implements the new API (connector_ecommerce) for the special order lines: - https://code.launchpad.net/~openerp-connector-core-editors/openerp-connector/7.0-e-commerce-addons-refactor-so-extra-lines/+merge/194629 - - -2.2.1 (2013.11.22) -~~~~~~~~~~~~~~~~~~ - -* Fix: Error when a sales order had no shipping method -* Fix: Searching for allowed carriers incorrectly uses magento_picking_id instead of magento_order_id (https://launchpad.net/bugs/1238951) -* Fix: Import of products fails when an image is missing (404 HTTP Error) (https://launchpad.net/bugs/1210543) -* Fix: Mapping of the states is not strict enough (https://launchpad.net/bugs/1250136) -* Fix: get_carriers() converting Magento order ID to int, fails with edited orders (https://launchpad.net/bugs/1253743) -* Fix: Importing authorized orders ignores PayPal orders (https://launchpad.net/bugs/1252308) - - -2.2.0 (public release - 2013.11.06) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Option to choose if the invoices are exported to Magento on payment or validation (Thanks to Allison Miller) -* Allow to define a prefix for the name of the imported sales orders (Thanks to Augustin Cisterne-Kaas) -* Fix: 'store_id' field in the Magento API contains the id of the storeview, and was mapped with the store. In some circumstances, sales orders may fail to import. (lp:1235269) -* Support of configurable products in import of sales orders - - -2.1.0 (2013.08.05) -~~~~~~~~~~~~~~~~~~ - -* Import of partners reviewed according to https://launchpad.net/bugs/1193281 - Especially to handle the b2b use cases better. -* Fix: Magento bindings duplicated with the "copy" method (https://launchpad.net/bugs/1205239) -* Fix: 503 Service unavailable protocol error should be retried later (https://launchpad.net/bugs/1194733) -* Fix: Import of guest orders (https://bugs.launchpad.net/openerp-connector/+bug/1193239) -* 'Authorized' import rules to be able to import sales orders authorized by a payment institute but not paid yet. (Thanks to Brendan Clune) -* Define the partners relationships only on the creation of new records, allowing manual specification of company / contact relationships within OpenERP (Thanks to Brendan Clune) -* Fix: State information for partners not mapped correctly (Thanks to Brendan Clune) (https://launchpad.net/bugs/1183837) -* Many others: see the bazaar logs - -2.0.0 -~~~~~ - -* First release - - -.. - Model: - 2.0.1 (date of release) - ~~~~~~~~~~~~~~~~~~~~~~~ - - * change 1 - * change 2 diff --git a/connector_magento/components/core.py b/connector_magento/components/core.py index fe7abf3b2..9e70fccb6 100644 --- a/connector_magento/components/core.py +++ b/connector_magento/components/core.py @@ -6,6 +6,10 @@ class BaseMagentoConnectorComponent(AbstractComponent): + """ Base Magento Connector Component + + All components of this connector should inherit from it. + """ _name = 'base.magento.connector' _inherit = 'base.connector' diff --git a/connector_magento/doc/api/api_backend.rst b/connector_magento/doc/api/api_backend.rst deleted file mode 100644 index 7b1709023..000000000 --- a/connector_magento/doc/api/api_backend.rst +++ /dev/null @@ -1,7 +0,0 @@ -Backend -======= - -.. automodule:: openerp.addons.connector_magento.backend - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_backend_adapter.rst b/connector_magento/doc/api/api_backend_adapter.rst deleted file mode 100644 index c41773530..000000000 --- a/connector_magento/doc/api/api_backend_adapter.rst +++ /dev/null @@ -1,7 +0,0 @@ -Backend Adapters -================ - -.. automodule:: openerp.addons.connector_magento.unit.backend_adapter - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_binder.rst b/connector_magento/doc/api/api_binder.rst deleted file mode 100644 index aa788b28f..000000000 --- a/connector_magento/doc/api/api_binder.rst +++ /dev/null @@ -1,7 +0,0 @@ -Binders -======= - -.. automodule:: openerp.addons.connector_magento.unit.binder - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_components.rst b/connector_magento/doc/api/api_components.rst new file mode 100644 index 000000000..6bf0b70de --- /dev/null +++ b/connector_magento/doc/api/api_components.rst @@ -0,0 +1,77 @@ +.. _api-component: + +########## +Components +########## + +Components are the blocks allowing to build a flexible and +well decoupled code. They are based on the ``component`` addon and the base +components of the Connector. + +************** +Core Component +************** + +.. automodule:: odoo.addons.connector_magento.components.core + :members: + :undoc-members: + :show-inheritance: + :private-members: + +****************** +Magento Components +****************** + +Backend Adapter +=============== + +.. automodule:: odoo.addons.connector_magento.components.backend_adapter + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Binder +====== + +.. automodule:: odoo.addons.connector_magento.components.binder + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Deleter +======= + +.. automodule:: odoo.addons.connector_magento.components.deleter + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Exporter +======== + +.. automodule:: odoo.addons.connector_magento.components.exporter + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Importer +======== + +.. automodule:: odoo.addons.connector_magento.components.importer + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Mapper +====== + +.. automodule:: odoo.addons.connector_magento.components.mapper + :members: + :undoc-members: + :show-inheritance: + :private-members: diff --git a/connector_magento/doc/api/api_connector.rst b/connector_magento/doc/api/api_connector.rst deleted file mode 100644 index 791e8bb82..000000000 --- a/connector_magento/doc/api/api_connector.rst +++ /dev/null @@ -1,7 +0,0 @@ -Connector -========= - -.. automodule:: openerp.addons.connector_magento.connector - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_consumer.rst b/connector_magento/doc/api/api_consumer.rst deleted file mode 100644 index 02cdfeb2b..000000000 --- a/connector_magento/doc/api/api_consumer.rst +++ /dev/null @@ -1,7 +0,0 @@ -Consumers -========= - -.. automodule:: openerp.addons.connector_magento.consumer - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_delivery.rst b/connector_magento/doc/api/api_delivery.rst deleted file mode 100644 index dc51299e5..000000000 --- a/connector_magento/doc/api/api_delivery.rst +++ /dev/null @@ -1,7 +0,0 @@ -Delivery -======== - -.. automodule:: openerp.addons.connector_magento.delivery - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_exception.rst b/connector_magento/doc/api/api_exception.rst index 61ec9c0f9..4c18274b4 100644 --- a/connector_magento/doc/api/api_exception.rst +++ b/connector_magento/doc/api/api_exception.rst @@ -1,9 +1,10 @@ +.. _api-exception: + +########## Exceptions -========== +########## -.. automodule:: openerp.addons.connector_magento.exception +.. automodule:: odoo.addons.connector_magento.exception :members: :undoc-members: :show-inheritance: - - diff --git a/connector_magento/doc/api/api_invoice.rst b/connector_magento/doc/api/api_invoice.rst deleted file mode 100644 index a6b240788..000000000 --- a/connector_magento/doc/api/api_invoice.rst +++ /dev/null @@ -1,7 +0,0 @@ -Invoice -======= - -.. automodule:: openerp.addons.connector_magento.invoice - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_magento_model.rst b/connector_magento/doc/api/api_magento_model.rst deleted file mode 100644 index 806913584..000000000 --- a/connector_magento/doc/api/api_magento_model.rst +++ /dev/null @@ -1,7 +0,0 @@ -Magento Models -============== - -.. automodule:: openerp.addons.connector_magento.magento_model - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_models.rst b/connector_magento/doc/api/api_models.rst new file mode 100644 index 000000000..df274ac15 --- /dev/null +++ b/connector_magento/doc/api/api_models.rst @@ -0,0 +1,222 @@ +.. _api-model: + +###### +Models +###### + +Implementation of the components per model. + +*********** +Base Models +*********** + +Magento Backend +=============== + +.. automodule:: odoo.addons.connector_magento.models.magento_backend.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.magento_backend.importer + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Magento Website +=============== + +.. automodule:: odoo.addons.connector_magento.models.magento_website.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.magento_website.importer + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Magento Store +============= + +.. automodule:: odoo.addons.connector_magento.models.magento_store.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.magento_store.importer + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Magento Storeview +================= + +.. automodule:: odoo.addons.connector_magento.models.magento_storeview.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.magento_storeview.importer + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Magento Binding +=============== + +.. automodule:: odoo.addons.connector_magento.models.magento_binding.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Queue Job +========= + +.. automodule:: odoo.addons.connector_magento.models.queue_job.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Payment Mode +============ + +.. automodule:: odoo.addons.connector_magento.models.account_payment_mode.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Delivery Method +=============== + +.. automodule:: odoo.addons.connector_magento.models.delivery.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +******************* +Synchronized Models +******************* + +Invoice +======= + +.. automodule:: odoo.addons.connector_magento.models.account_invoice.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.account_invoice.exporter + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Partner +======= + +.. automodule:: odoo.addons.connector_magento.models.partner.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.partner.importer + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Partner Category +================ + +.. automodule:: odoo.addons.connector_magento.models.partner_category.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.partner_category.importer + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Product +======= + +.. automodule:: odoo.addons.connector_magento.models.product.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.product.importer + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Product Category +================ + +.. automodule:: odoo.addons.connector_magento.models.product_category.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.product_category.importer + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Sales Order +=========== + +.. automodule:: odoo.addons.connector_magento.models.sale_order.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.sale_order.importer + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.sale_order.exporter + :members: + :undoc-members: + :show-inheritance: + :private-members: + +Stock Picking +============= + +.. automodule:: odoo.addons.connector_magento.models.stock_picking.common + :members: + :undoc-members: + :show-inheritance: + :private-members: + +.. automodule:: odoo.addons.connector_magento.models.stock_picking.exporter + :members: + :undoc-members: + :show-inheritance: + :private-members: diff --git a/connector_magento/doc/api/api_partner.rst b/connector_magento/doc/api/api_partner.rst deleted file mode 100644 index f5557fc5c..000000000 --- a/connector_magento/doc/api/api_partner.rst +++ /dev/null @@ -1,7 +0,0 @@ -Partner -======= - -.. automodule:: openerp.addons.connector_magento.partner - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_partner_category.rst b/connector_magento/doc/api/api_partner_category.rst deleted file mode 100644 index 614d016cb..000000000 --- a/connector_magento/doc/api/api_partner_category.rst +++ /dev/null @@ -1,7 +0,0 @@ -Partner Category -================ - -.. automodule:: openerp.addons.connector_magento.partner_category - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_product.rst b/connector_magento/doc/api/api_product.rst deleted file mode 100644 index e1123669e..000000000 --- a/connector_magento/doc/api/api_product.rst +++ /dev/null @@ -1,7 +0,0 @@ -Product -======= - -.. automodule:: openerp.addons.connector_magento.product - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_product_category.rst b/connector_magento/doc/api/api_product_category.rst deleted file mode 100644 index 488b36d70..000000000 --- a/connector_magento/doc/api/api_product_category.rst +++ /dev/null @@ -1,7 +0,0 @@ -Product Category -================ - -.. automodule:: openerp.addons.connector_magento.product_category - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_sale.rst b/connector_magento/doc/api/api_sale.rst deleted file mode 100644 index e7a8cfee5..000000000 --- a/connector_magento/doc/api/api_sale.rst +++ /dev/null @@ -1,7 +0,0 @@ -Sale -==== - -.. automodule:: openerp.addons.connector_magento.sale - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_stock_picking.rst b/connector_magento/doc/api/api_stock_picking.rst deleted file mode 100644 index 32ecac24a..000000000 --- a/connector_magento/doc/api/api_stock_picking.rst +++ /dev/null @@ -1,7 +0,0 @@ -Stock Picking -============= - -.. automodule:: openerp.addons.connector_magento.stock_picking - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_stock_tracking.rst b/connector_magento/doc/api/api_stock_tracking.rst deleted file mode 100644 index 44af25598..000000000 --- a/connector_magento/doc/api/api_stock_tracking.rst +++ /dev/null @@ -1,7 +0,0 @@ -Stock Tracking -============== - -.. automodule:: openerp.addons.connector_magento.stock_tracking - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/api/api_synchronizer.rst b/connector_magento/doc/api/api_synchronizer.rst deleted file mode 100644 index 5c4375868..000000000 --- a/connector_magento/doc/api/api_synchronizer.rst +++ /dev/null @@ -1,26 +0,0 @@ -Synchronizers -============= - -Import ------- - -.. automodule:: openerp.addons.connector_magento.unit.import_synchronizer - :members: - :undoc-members: - :show-inheritance: - -Export ------- - -.. automodule:: openerp.addons.connector_magento.unit.export_synchronizer - :members: - :undoc-members: - :show-inheritance: - -Delete ------- - -.. automodule:: openerp.addons.connector_magento.unit.delete_synchronizer - :members: - :undoc-members: - :show-inheritance: diff --git a/connector_magento/doc/conf.py b/connector_magento/doc/conf.py index 7490f1596..519fc0305 100644 --- a/connector_magento/doc/conf.py +++ b/connector_magento/doc/conf.py @@ -12,22 +12,58 @@ # All configuration values have a default; values that are commented out # serve to show the default. + +import ast import sys import os import sphinx_bootstrap_theme sys.path.append(os.path.abspath('_themes')) + +MANIFEST_FILES = [ + '__manifest__.py', + '__odoo__.py', + '__openerp__.py', +] + + +def is_module(path): + """return False if the path doesn't contain an odoo module, and the full + path to the module manifest otherwise""" + + if not os.path.isdir(path): + return False + files = os.listdir(path) + filtered = [x for x in files if x in (MANIFEST_FILES + ['__init__.py'])] + if len(filtered) == 2 and '__init__.py' in filtered: + return os.path.join( + path, next(x for x in filtered if x != '__init__.py')) + else: + return False + + +def is_installable_module(path): + """return False if the path doesn't contain an installable odoo module, + and the full path to the module manifest otherwise""" + manifest_path = is_module(path) + if manifest_path: + manifest = ast.literal_eval(open(manifest_path).read()) + if manifest.get('installable', True): + return manifest_path + return False + + if os.environ.get('TRAVIS_BUILD_DIR') and os.environ.get('VERSION'): # build from travis repos_home = os.environ['HOME'] deps_path = os.path.join(repos_home, 'dependencies') - odoo_folder = 'odoo-8.0' + odoo_folder = 'odoo-10.0' odoo_root = os.path.join(repos_home, odoo_folder) build_path = os.environ['TRAVIS_BUILD_DIR'] else: - # build from a buildout - odoo_root = os.path.abspath('../../../odoo') + # build from dev + odoo_root = os.path.abspath('../../../../src') deps_path = os.path.abspath('../../..') build_path = os.path.abspath('../..') @@ -39,7 +75,8 @@ def add_path(*paths): os.path.join(*paths) ) -add_path(odoo_root, 'openerp', 'addons') + +add_path(odoo_root, 'odoo', 'addons') add_path(odoo_root, 'addons') add_path(build_path) @@ -52,7 +89,7 @@ def add_path(*paths): addons = [x for x in os.listdir(build_path) if not x.startswith(('.', '__')) and - os.path.isdir(os.path.join(build_path, x))] + is_installable_module(x)] # sphinxodoo.ext.autodoc variables sphinxodoo_root_path = odoo_root @@ -84,6 +121,9 @@ def add_path(*paths): # The suffix of source filenames. source_suffix = '.rst' +# autodoc options +autodoc_member_order = 'bysource' + # The encoding of source files. # source_encoding = 'utf-8-sig' @@ -260,7 +300,7 @@ def add_path(*paths): # html_file_suffix = None # Output file base name for HTML help builder. -htmlhelp_basename = 'openerp-magento-connector-doc' +htmlhelp_basename = 'odoo-magento-connector-doc' # -- Options for LaTeX output ------------------------------------------ @@ -279,7 +319,7 @@ def add_path(*paths): # Grouping the document tree into LaTeX files. List of tuples (source # start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'openerp-magento-connector.tex', + ('index', 'odoo-magento-connector.tex', u'Odoo Magento Connector Documentation', u'Odoo Community Association (OCA)', 'manual'), ] @@ -310,7 +350,7 @@ def add_path(*paths): # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - ('index', 'openerp-magento-connector', + ('index', 'odoo-magento-connector', u'Odoo Magento Connector Documentation', [u'Odoo Community Association (OCA)'], 1) ] @@ -346,7 +386,5 @@ def add_path(*paths): # library. intersphinx_mapping = { 'python': ('http://docs.python.org/2.7', None), - 'openerpweb': ('https://www.odoo.com/documentation/8.0/', None), - 'openerpdev': ('https://www.odoo.com/documentation/8.0/', None), - 'openerpconnector': ('http://www.odoo-connector.com', None), + 'connector': ('http://www.odoo-connector.com', None), } diff --git a/connector_magento/doc/guides/installation_guide.rst b/connector_magento/doc/guides/installation_guide.rst index 81c4bd4f4..3cd1d3849 100644 --- a/connector_magento/doc/guides/installation_guide.rst +++ b/connector_magento/doc/guides/installation_guide.rst @@ -12,8 +12,8 @@ Installation The installation steps assume that you already have a functioning Odoo server. -If you are a developer, you may want to install the Connector using our -buildout configuration, head over :ref:`installation-with-buildout`. +If you are looking for a development environment, you may want to install the Connector using our +Docker workspace, head over :ref:`installation-dev-env`. For the manual installation, just stay there. @@ -28,12 +28,14 @@ Odoo Clone the repositories below in the path where you chosed to store the addons:: - $ git clone git@github.com:OCA/connector.git -b 8.0 - $ git clone git@github.com:OCA/connector-ecommerce.git -b 8.0 - $ git clone git@github.com:OCA/connector-magento.git -b 8.0 - $ git clone git@github.com:OCA/e-commerce.git -b 8.0 - $ git clone git@github.com:OCA/product-attribute.git -b 8.0 - $ git clone git@github.com:OCA/sale-workflow.git -b 8.0 + $ git clone git@github.com:OCA/queue.git -b 10.0 + $ git clone git@github.com:OCA/connector.git -b 10.0 + $ git clone git@github.com:OCA/connector-ecommerce.git -b 10.0 + $ git clone git@github.com:OCA/connector-magento.git -b 10.0 + $ git clone git@github.com:OCA/sale-workflow.git -b 10.0 + $ git clone git@github.com:OCA/partner-contact.git -b 10.0 + $ git clone git@github.com:OCA/bank-payment.git -b 10.0 + $ git clone git@github.com:OCA/server-tools.git -b 10.0 .. important:: Keep the git branches entire. Do not copy-paste the modules in another directory. @@ -43,10 +45,10 @@ line or adding them in the Odoo server configuration file. Example using the command line argument:: - $ /path/to/openerp-server --addons-path /path/to/connector,/path/to/connector-ecommerce,/path/to/connector-magento,/path/to/e-commerce,/path/to/product-attribute,/path/to/sale-workflow + $ /path/to/odoo --addons-path /path/to/queue,/path/to/connector,/path/to/connector-ecommerce,/path/to/connector-magento,/path/to/e-commerce,/path/to/sale-workflow,/path/to/partner-contact,/path/to/bank-payment,/path/to/server-tools You also need to install the ``magento`` Python package. -So install it with either pip or either easy_install:: +So install it with either pip or either easy_install (ideally in a virtualenv):: $ pip install magento @@ -94,10 +96,10 @@ Configuring the Magento web-services 1. In the Magento admin panel, go to `System > Web-Services > SOAP/XML-RPC - Roles`. -#. Create a new role named `openerp` with access to `All` resources. +#. Create a new role named `odoo` with access to `All` resources. #. In `System > Web-Services > SOAP/XML-RPC - Users`, create a new user - named as you want, for instance `openerp_connect`, and an API key. - In `User Role`, choose the `openerp` role. + named as you want, for instance `odoo_connector`, and an API key. + In `User Role`, choose the `odoo` role. ********************** @@ -119,7 +121,7 @@ Once the addon is installed, you may want to: #. Configure: :ref:`configure-emails` -#. Configure: :ref:`configure-payment-methods` +#. Configure: :ref:`configure-payment-modes` #. Configure: :ref:`configure-automatic-workflows` @@ -127,8 +129,6 @@ Once the addon is installed, you may want to: #. Configure: :ref:`configure-warehouses` -#. Configure: :ref:`configure-pricing` - On the backend, #. Import the customer groups diff --git a/connector_magento/doc/guides/key_questions.rst b/connector_magento/doc/guides/key_questions.rst index a5f2f50a4..1450a7dd3 100644 --- a/connector_magento/doc/guides/key_questions.rst +++ b/connector_magento/doc/guides/key_questions.rst @@ -30,8 +30,8 @@ a checklist for your implementation. Sale workflows ************** -Payment methods -=============== +Payment Modes +============= Are you going to use 'manual' payment types like check or invoices? @@ -39,12 +39,12 @@ Are you going to use 'automatic' payment types like bankcard, paypal, ...? Each method needs to be configured, follows: -:ref:`configure-payment-methods`. +:ref:`configure-payment-modes`. Automatic workflows =================== -For each `Payment methods`_, +For each `Payment Modes`_, you will want to configure a different workflow, for instance, the sales orders of an automatic payment is automatically confirmed. diff --git a/connector_magento/doc/guides/monitor_resolve_jobs.rst b/connector_magento/doc/guides/monitor_resolve_jobs.rst index af50955a3..edd3a8993 100644 --- a/connector_magento/doc/guides/monitor_resolve_jobs.rst +++ b/connector_magento/doc/guides/monitor_resolve_jobs.rst @@ -5,7 +5,7 @@ Monitor and resolve jobs ######################## -Jobs are located in ``Connector > Queue > Jobs``. +Jobs are located in ``Queue > Jobs``. A job is a unit of work for a single synchronization action. Jobs are executed by the 'Workers'. @@ -17,24 +17,11 @@ Q&A My jobs are not executed, why? ============================== -The first thing to note is that the jobs are enqueued all the minutes. -Their execution is not immediate. - -If you see no jobs executed in more than 1 minute, possibilities are: - -1. Jobs are assigned to a worker which died. A worker - can die when Odoo reloads his modules registry (after a module - upgrade for instance). The dead workers are cleaned after 5 minutes, - then the jobs are enqueued in a new one. #. The jobs all have an ``eta`` (estimated time of arrival), so they will be executed later. -#. The scheduler action is not running, check in ``Settings > Scheduler - > Scheduled Actions`` if the action ``Enqueue Jobs`` is active. - -#. Odoo is running in multiprocess and it doesn't have a Cron Worker - process running (when using Gunicorn). +#. The :ref:`Job runner ` is not started or configured properly A job is in state 'Failed', what should I do? @@ -65,19 +52,3 @@ and will be restarted on the start of the Odoo server. Note that the actions performed on Magento by a job could of course not be reverted, so they will be done 2 times. - - -Why do I have a couple of Workers? -================================== - -When Odoo is running in standalone (one process), -you'll always have 1 Jobs Worker. -When Odoo is running in multiprocess, -you'll have 1 Jobs Worker for each Odoo worker. - -.. note:: To benefits of multiple workers, you need to: - - * have multiple Cron Workers (using the ``--max-cron-threads`` - option). - * Copy the Scheduled Actions ``Enqueue Jobs`` as many times as - you have Cron Workers. diff --git a/connector_magento/doc/guides/tutorial_customize.rst b/connector_magento/doc/guides/tutorial_customize.rst index 52c466cbc..02066831f 100644 --- a/connector_magento/doc/guides/tutorial_customize.rst +++ b/connector_magento/doc/guides/tutorial_customize.rst @@ -10,13 +10,16 @@ connector in your own Odoo module. It assumes that you already have some knowledge in the Odoo development. You can still refer to the `official Odoo documentation`_. +Reading the `Connector Framework`_ documentation is also a good idea. + .. contents:: Sections: :local: :backlinks: top -.. _official Odoo documentation: https://www.odoo.com/documentation/8.0/ +.. _official Odoo documentation: https://www.odoo.com/documentation/10.0/ +.. _Connector Framework: http://www.odoo-connector.com *************************************** Bootstrap your own customization module @@ -25,39 +28,22 @@ Bootstrap your own customization module You should never make changes in the official modules, instead, you need to create your own module and apply your personalizations from there. -As an example, throughout this tutorial, we'll create our own -customization module, we'll name it, in a very original manner, -``customize_example``. The final example module can be found in the root -of the ``connector-magento`` repository. +As an example, throughout this tutorial, we'll create our own customization +module, we'll name it, in a very original manner, +``connector_magento_customize_example``. The final example module can be found +in the root of the ``connector-magento`` repository. Common Odoo files ================= A ``connector_magento`` customization module is like any Odoo module, so you will first need to create the **manifest** -``customize_example/__openerp__.py``: +``connector_magento_customize_example/__manifest__.py``: -.. code-block:: python - :emphasize-lines: 4,5 - - # -*- coding: utf-8 -*- - {'name': 'Magento Connector Customization', - 'version': '1.0.0', - 'category': 'Connector', - 'depends': ['connector_magento', - ], - 'author': 'Myself', - 'license': 'AGPL-3', - 'description': """ - Magento Connector Customization - =============================== - - Explain what this module changes. - """, - 'data': [], - 'installable': True, - 'application': False, - } +.. literalinclude:: ../../../connector_magento_customize_example/__manifest__.py + :language: python + :lines: 5-15 + :emphasize-lines: 3-4 Nothing special but 2 things to note: @@ -67,97 +53,10 @@ Nothing special but 2 things to note: Of course, you also need to create the ``__init__.py`` file where you will put the imports of your python modules. -Install the module in the connector -=================================== - -Each new module needs to be plugged in the connector's framework. -That's just a matter of following a convention and creating -``connector.py`` in which you will call the -``install_in_connector`` function:: - - from openerp.addons.connector.connector import install_in_connector - - - install_in_connector() - -.. warning:: If you miss this line of code, your custom ConnectorUnit - classes won't be used. - - -Create your custom Backend -========================== - -The connector can support the synchronization with various Magento -versions. - -Actually the supported versions are referenced in -``connector_magento/backend.py``:: - - import openerp.addons.connector.backend as backend - - magento = backend.Backend('magento') - magento1700 = backend.Backend(parent=magento, version='1.7') - -In the connector, we are able to link pieces of code to a specific -version of Magento. If I link a piece of code to ``magento1700``, it -will be executed only if my Magento's version is actually Magento 1.7. - -``magento`` is the parent of ``magento1700``. When the latter has no -specific piece of code, it will execute the former's one. - -As you want to change parts of code specifically to **your version** of -Magento, you need to: - -* create your own backend version -* link your custom parts of code with your own backend version (we'll - cover this later) - -Let's create our own backend, in ``customize_example/backend.py``:: - - # -*- coding: utf-8 -*- - import openerp.addons.connector.backend as backend - import openerp.addons.connector_magento.backend as magento_backend - - magento_myversion = backend.Backend(parent=magento_backend.magento1700, - version='1.7-myversion') - -And in ``customize_example/magento_model.py``:: - - # -*- coding: utf-8 -*- - from openerp import models, api - - - class MagentoBackend(models.Model): - _inherit = 'magento.backend' - - @api.model - def select_versions(self): - """ Available versions in the backend. - - Can be inherited to add custom versions. - """ - versions = super(MagentoBackend, self).select_versions() - versions.append(('1.7-myversion', '1.7 - My Version')) - return versions - -Things to note: - -* The ``parent`` argument of my version is the 1.7 version. You have to - set the correct parent according to your Magento version. If your - Magento version does not exist, take the nearest version. -* the version should be the same in the ``backend.Backend`` and the - model. -* We add the version in the model ``magento.backend`` so we'll be able to - select it from the Odoo front-end. -* Do not forget to add the new python modules in ``__init__.py``. Use it in Odoo ============== -Great, you now have the minimal stuff required to customize your -connector. When you create your backend in Odoo (menu ``Connectors > -Magento > Backends``), you have now to select **1.7 - My Version**. - In the next chapter, we'll cover the most common personalization: `Add mappings of fields`_. @@ -182,12 +81,8 @@ We'll see how to map new fields on the imports. A bit of theory =============== -The mappings of the fields are defined in subclasses of -:py:class:`connector.unit.mapper.ImportMapper` or -:py:class:`connector.unit.mapper.ExportMapper`, respectively -for the imports and the exports. - -See the documentation about :py:class:`~connector.unit.mapper.Mapper`. +The mappings of the fields are defined in "Mappers" components whcih class is +:py:class:`~connector.unit.mapper.Mapper`. .. note:: The connector almost never works with the Odoo Models directly. Instead, it works with its own models, which @@ -199,25 +94,30 @@ See the documentation about :py:class:`~connector.unit.mapper.Mapper`. More details in `Magento Models`_. When you need to change the mappings, you'll need to dive in the -``connector_magento``'s code and locate the class which does this job for +``connector_magento``'s code and locate the component which does this job for your model. You won't change anything in this class, but you'll extend it so you need to have a look on it. For example, the mapping for ``magento.res.partner`` in ``connector_magento`` is the following -(excerpt):: - - @magento - class PartnerImportMapper(ImportMapper): - _model_name = 'magento.res.partner' +(excerpt): - direct = [('email', 'email'), - ('dob', 'birthday'), - ('created_at', 'created_at'), - ('updated_at', 'updated_at'), - ('email', 'emailid'), - ('taxvat', 'taxvat'), - ('group_id', 'group_id'), - ] +.. code-block:: python + class PartnerImportMapper(Component): + _name = 'magento.partner.import.mapper' + _inherit = 'magento.import.mapper' + _apply_on = 'magento.res.partner' + + direct = [ + ('email', 'email'), + ('dob', 'birthday'), + (normalize_datetime('created_at'), 'created_at'), + (normalize_datetime('updated_at'), 'updated_at'), + ('email', 'emailid'), + ('taxvat', 'taxvat'), + ('group_id', 'group_id'), + ] + + @only_create @mapping def is_company(self, record): # partners are companies so we can bind @@ -231,8 +131,6 @@ it so you need to have a look on it. For example, the mapping for record['lastname']) if part] return {'name': ' '.join(parts)} - [...snip...] - Here we can see 2 types of mappings: * ``direct`` mappings, a field in Magento is directly written in the @@ -244,7 +142,7 @@ Here we can see 2 types of mappings: values. A ``None`` return value will be ignored. * the ``record`` argument receives the Magento record. -.. note:: This is not covered here, but for the ``ExportMapper``, an +.. note:: This is not covered here, but for the export mapppers, an additional decorator ``@changed_by()`` is used to filter the mappings to apply according to the fields modified in Odoo. @@ -264,7 +162,7 @@ which are peculiar to Magento. Example with an excerpt of the fields for ``magento.res.partner``: -* ``openerp_id``: ``Many2one`` to the ``res.partner`` (``_inherits``) +* ``odoo_id``: ``Many2one`` to the ``res.partner`` (``_inherits``) * ``backend_id``: ``Many2one`` to the ``magento.backend`` model (Magento Instance), for the partner this is a ``related`` because we already have a link to the website, itself associated to a ``magento.backend``. @@ -303,38 +201,24 @@ I add it on ``magento.res.partner`` because it doesn't make sense on ``res.partner``. For this field, the Magento API returns a string. I add it in -``customize_example/partner.py`` (I willingly skip the part 'add them in -the views'):: +``connector_magento_customize_example/models/partner.py`` (I willingly skip the +part 'add them in the views'): - # -*- coding: utf-8 -*- - from openerp import models, fields - class MagentoResPartner(models.Model): - _inherit = 'magento.res.partner' +.. literalinclude:: ../../../connector_magento_customize_example/models/partner.py + :language: python + :lines: 7,14-18 - created_in = fields.Char(string='Created In', readonly=True) +And I extend the partner's mapper: -In the same file, I add the import of the Magento Backend to use and the -current mapper:: +.. literalinclude:: ../../../connector_magento_customize_example/models/partner.py + :language: python + :lines: 8,34-41 - from openerp.addons.connector_magento.partner import PartnerImportMapper - from .backend import magento_myversion - -And I extend the partner's mapper, decorated with -``@magento_myversion``:: - - @magento_myversion - class MyPartnerImportMapper(PartnerImportMapper): - _model_name = 'magento.res.partner' - - direct = PartnerImportMapper.direct + [('created_in', 'created_in')] And that's it! The field will be imported along with the other fields. -.. attention:: Verify that you have selected the right version when you - have created your backend in ``Connectors > Magento > Backends`` - otherwise your code will not be used. Example 2. ---------- @@ -349,44 +233,36 @@ This time, I will create the field in ``res.partner``, because the value will likely be the same even if we have many ``magento.res.partner`` and this information can be useful at this level. -In ``customize_example/partner.py``, I write:: +.. literalinclude:: ../../../connector_magento_customize_example/models/partner.py + :language: python + :lines: 7,20-29 - # -*- coding: utf-8 -*- - from openerp import models, fields - class ResPartner(models.Model): - _inherit = 'res.partner' - - gender = fields.Selection(selection=[('male', 'Male'), - ('female', 'Female')], - string='Gender') +This is not a `direct` mapping, I will use a method to define the +``gender`` value: -The same imports than in the `Example 1.`_ are needed, but we need to -import ``mapping`` too:: +.. literalinclude:: ../../../connector_magento_customize_example/models/partner.py + :language: python + :lines: 8,9,34-36,42-46 - from openerp.addons.connector.unit.mapper import mapping - from openerp.addons.connector_magento.partner import PartnerImportMapper - from .backend import magento_myversion +The ``gender`` field will now be imported. -This is not a `direct` mapping, I will use a method to define the -``gender`` value:: +******************** +Customizing importer +******************** - MAGENTO_GENDER = {'123': 'male', - '124': 'female'} +Let's say we want to plug something at the end of the partner importer. - @magento_myversion - class MyPartnerImportMapper(PartnerImportMapper): - _model_name = 'magento.res.partner' +We can do that with an inherit: - @mapping - def gender(self, record): - gender = MAGENTO_GENDER.get(record.get('gender')) - return {'gender': gender} +.. literalinclude:: ../../../connector_magento_customize_example/models/partner.py + :language: python + :lines: 8,48-54 -The ``gender`` field will now be imported. +******** And now? -======== +******** With theses principles, you should now be able to extend the original mappings and add your own ones. This is applicable for the customers but diff --git a/connector_magento/doc/guides/tutorial_development.rst b/connector_magento/doc/guides/tutorial_development.rst deleted file mode 100644 index 089446df3..000000000 --- a/connector_magento/doc/guides/tutorial_development.rst +++ /dev/null @@ -1,401 +0,0 @@ -.. _tutorial-development: - - -Tutorial: development -===================== - -This tutorial explains how to take part in the development of -Magentoerpconnect. It will explain how to use the different pieces of -the ``Connector`` addon to synchronize records with Magento. - -.. contents:: Sections: - :local: - :backlinks: top - - -Run a function on an Event --------------------------- - -3 events are registered in the ``Connector`` addon: - -* ``on_record_create`` -* ``on_record_write`` -* ``on_record_unlink`` - -If you need to create a new :py:class:`connector.event.Event`, please -refer to the ``Connector`` documentation. - -When a function has to be run when an event is fired, it must be -registered on this event. Those functions are called ``Consumers``. - -In ``connector_magento/consumer.py``, some consumers are already -defined. You can add your one, it should be decorated by -:py:func:`openerp.addons.connector_magento.consumer.magento_consumer` and by the event -which has to fire it:: - - @on_record_write(model_names=['my.model']) - @magento_consumer - def my_consumer(session, model_name, record_id, vals=None): - print 'Yeah' - -.. note:: The consumers always start with the arguments ``session`` and - ``model_name``. The next arguments vary, but they are defined - by the :py:class:`connector.event.Event` - - -Find the 'connector unit' for a model -------------------------------------- - -Assume that you already have a ``ConnectorEnvironment``. - -.. note:: A ``ConnectorEnvironment`` is the scope where the synchronizations - are done. It contains the browse record of the backend - (``magento.backend``), a ``ConnectorSession`` (container for ``cr``, - ``uid``, ``context``) and the name of the model we are working with). - -You can get an instance of the ``ConnectorUnit`` to use from the -environment. You'll need to ask a connector unit with the base class -which interests you. Say you want a Synchronizer which import records -from Magento:: - - importer = environment.get_connector_unit(MagentoImporter) - -``importer`` is an instance of the importer to use for the model of the -environment. - -Say you want a binder for your model:: - - binder = environment.get_connector_unit(connector.Binder) - -``binder`` is an instance of the binder for your model. - -And so on... - -.. note:: Every ``ConnectorUnit`` instance keeps the environment as - attribute. It means that you can access to the environment - from a synchronizer with ``self.connector_env``. - -When you are already inside a ``ConnectorUnit`` though you can use the shortcuts:: - - # for the current model - importer = self.unit_for(MagentoImporter) - # for another model - importer = self.unit_for(MagentoImporter, model='another.model') - -As the binders are the most used ``ConnectorUnit`` classes, they have a -dedicated shortcut:: - - # for the current model - binder = self.binder_for() - # for another model - binder = self.binder_for(model='another.model') - - -Create an import ----------------- - -You'll probably need to work with 4 connector units: - -* a Synchronizer (presumably 2, we'll see why soon) -* a Mapper -* a Backend Adapter -* a Binder - -You will also need to create / change the Odoo models. - -.. note:: Keep in mind: try to modify at least as possible the Odoo - models and classes. - -The synchronizer will handle the flow of the synchronization. It will -get the data from Magento using the Backend Adapter, transform it using -the Mapper, and use the Binder(s) to search the relation(s) with other -imported records. - -Why do we need 2 synchronizers? Because an import is generally done in 2 -phases: - -1. The first synchronizer searches the list of all the ids to import. -2. The second synchronizer imports all the ids atomically (in separate - jobs). - -We'll see in details a simple import: customer groups. -Customer groups are importer as categories of partners -(``res.partner.category``). - -Models -'''''' - -First, we create the model:: - - class MagentoResPartnerCategory(models.Model): - _name = 'magento.res.partner.category' - _inherit = 'magento.binding' - _inherits = {'res.partner.category': 'openerp_id'} - - openerp_id = fields.Many2one(comodel_name='res.partner.category', - string='Partner Category', - required=True, - ondelete='cascade') - tax_class_id = fields.Integer(string='Tax Class ID') - -Observations: - -* We do not change ``res.partner.category`` but create a - ``magento.res.partner.category`` model instead. -* It `_inherit` from `magento.binding` -* It contains the links to the Magento backend, the category and the - ID on Magento (inherited from ``magento.binding``). -* This model stores the data related to one category and one Magento - backend as well, so this data does not pollute the category and does - not criss-cross when several backends are connected. -* It ``_inherits`` the ``res.partner.category`` so we can directly use - this model for the imports and the exports without complications. - -We need to add the field ``magento_bind_ids`` in -``res.partner.category`` to relate to the Magento Bindings:: - - class ResPartnerCategory(models.Model): - _inherit = 'res.partner.category' - - magento_bind_ids = fields.One2many( - comodel_name='magento.res.partner.category', - inverse_name='openerp_id', - string='Magento Bindings', - readonly=True, - ) - - -That's the only thing we need to change (besides the view) in the -Odoo's models! - -.. note:: The name of the field ``magento_bind_ids`` is a convention. - -Ok, we're done with the models. Now the **synchronizations**! - -Batch Importer -'''''''''''''' - -The first Synchronizer, which get the full list of ids to import is -usually a subclass of -:py:class:`connector_magento.unit.import_synchronizer.BatchImporter`. - -The customer groups are simple enough to use a generic class:: - - @magento - class DelayedBatchImporter(BatchImporter): - """ Delay import of the records """ - _model_name = [ - 'magento.res.partner.category', - ] - - def _import_record(self, record): - """ Delay the import of the records""" - job.import_record.delay(self.session, - self.model._name, - self.backend_record.id, - record) - -Observations: - -* Decorated by ``@magento``: this synchronizer will be available for all - versions of Magento. Decorated with ``@magento1700`` it would be only - available for Magento 1.7. -* ``_model_name``: the list of models allowed to use this synchronizer -* We just override the ``_import_record`` hook, the search has already - be done in - :py:class:`connector_magento.unit.import_synchronizer.BatchImporter`. -* ``import_record`` is a job to import a record from its ID. -* Delay the import of each record, a job will be created for each record id. -* This synchronization does not need any Binder nor Mapper, but does - need a Backend Adapter to be able to speak with Magento. - -So, let's implement the **Backend Adapter**. - -Backend Adapter -''''''''''''''' - -Most of the Magento objects can use the generic class -:py:class`connector_magento.unit.backend_adapter.GenericAdapter`. -However, the ``search`` entry point is not implemented in the API for -customer groups. - -We'll replace it using ``list`` and select only the ids:: - - @magento - class PartnerCategoryAdapter(GenericAdapter): - _model_name = 'magento.res.partner.category' - _magento_model = 'ol_customer_groups' - - def search(self, filters=None): - """ Search records according to some criterias - and returns a list of ids - - :rtype: list - """ - return [int(row['customer_group_id']) for row - in self._call('%s.list' % self._magento_model, - [filters] if filters else [{}])] - -Observations: - -* ``_model_name`` is just ``magento.res.partner.category``, this adapter - is available only for this model. -* ``_magento_model`` is the first part of the entry points in the API - (ie. ``ol_customer_groups.list``) -* Only the ``search`` method is overriden. - -We have all the pieces for the first part of the synchronization, just -need to... - -Delay execution of our Batch Import -''''''''''''''''''''''''''''''''''' - -This import will be called from the **Magento Backend**, we inherit ``magento.backend`` -and add a method (and add in the view as well, I won't write the view's xml here):: - - class MagentoBackend(models.Model): - _inherit = 'magento.backend' - - @api.multi - def import_customer_groups(self): - session = ConnectorSession.from_env(self.env) - for backend_id in self.ids: - job.import_batch.delay(session, 'magento.res.partner.category', - backend_id) - - return True - -Observations: - -* Encapsulate Odoo environment in a :py:class:`openerp.addons.connector.session.ConnectorSession`. -* Delay the job ``import_batch`` when we click on the button. -* if the arguments were given to ``import_batch`` directly (without the - ``.delay()``, the import would be done synchronously. - -Overview on the jobs -'''''''''''''''''''' - -We use 2 jobs: ``import_record`` and ``import_batch``. These jobs are -already there so you don't need to write them, but we can have a look -on them to understand what they do:: - - def _get_environment(session, model_name, backend_id): - model = session.env['magento.backend'] - backend_record = model.browse(backend_id) - return connector.Environment(backend_record, session, model_name) - - - @connector.job - def import_batch(session, model_name, backend_id, filters=None): - """ Prepare a batch import of records from Magento """ - env = _get_environment(session, model_name, backend_id) - importer = env.get_connector_unit(BatchImporter) - importer.run(filters) - - - @connector.job - def import_record(session, model_name, backend_id, external_id): - """ Import a record from Magento """ - env = _get_environment(session, model_name, backend_id) - importer = env.get_connector_unit(MagentoImporter) - importer.run(external_id) - -Observations: - -* Decorated by :py:class:`connector.queue.job.job`, allow to - ``delay`` the function. -* We create a new environment and ask for the good importer, respectively - for batch imports and record imports. The environment returns an - instance of the importer to use. -* The docstring of the job is its description for the user. - -At this point, if one click on the button to import the categories, the -batch import would run, generate one job for each category to import, -and then all these jobs would fail. We need to create the second -synchronizer, the mapper and the binder. - -Record Importer -''''''''''''''' - -The import of customer groups is so simple that it can use a generic -class -:py:class:`openerp.addons.connector_magento.unit.import_synchronizer.SimpleRecordImporter`. -We just need to add the model in the ``_model_name`` attribute:: - - @magento - class SimpleRecordImporter(MagentoImporter): - """ Import one Magento Website """ - _model_name = [ - 'magento.website', - 'magento.store', - 'magento.storeview', - 'magento.res.partner.category', - ] - -However, most of the imports will be more complicated than that. You -will often need to create a new class for a model, where you will need -to use some of the hooks to change the behavior -(``_import_dependencies``, ``_after_import`` for example). -Refers to the importers already created in the module and to the base -class -:py:class:`openerp.addons.connector_magento.unit.import_synchronizer.MagentoImporter`. - -The synchronizer asks to the appropriate :py:class:`~connector.unit.mapper.Mapper` to transform the data -(in ``_map_data``). Here is how we'll create the :py:class:`~connector.unit.mapper.Mapper`. - -Mapper -'''''' - -The :py:class:`connector.unit.mapper.Mapper` takes the record from Magento, and generates the Odoo -record. (or the reverse for the export Mappers) - -The mapper for the customer groups is as follows:: - - @magento - class PartnerCategoryImportMapper(connector.ImportMapper): - _model_name = 'magento.res.partner.category' - - direct = [('customer_group_code', 'name'), - ('tax_class_id', 'tax_class_id'), - ] - - @mapping - def external_id(self, record): - return {'external_id': record['customer_group_id']} - - @mapping - def backend_id(self, record): - return {'backend_id': self.backend_record.id} - - -Observations: - -* Some mappings are in ``direct`` and some use a method with a - ``@mapping`` decorator. -* Methods allow to have more complex mappings. (see documentation on - :py:class:`~connector.unit.mapper.Mapper`) - - -Binder -'''''' - -For the last piece of the construct, it will be an easy one, because -normally all the Magento Models will use the same Binder, the so called -:py:class:`~openerp.addons.connector_magento.unit.binder.MagentoModelBinder`. - -We just need to add our model in the ``_model_name`` attribute:: - - @magento - class MagentoModelBinder(MagentoBinder): - """ - Bindings are done directly on the model - """ - _model_name = [ - 'magento.website', - 'magento.store', - 'magento.storeview', - 'magento.res.partner.category', - ] - - [...] - diff --git a/connector_magento/doc/howto/configure_automatic_workflows.rst b/connector_magento/doc/howto/configure_automatic_workflows.rst index a81fcb14b..278ad9861 100644 --- a/connector_magento/doc/howto/configure_automatic_workflows.rst +++ b/connector_magento/doc/howto/configure_automatic_workflows.rst @@ -6,7 +6,7 @@ Howto: configure automatic workflows #################################### Find the configuration in the menu -`Sales > Configuration > Sales > Automatic Workflow`. +`Sales > Configuration > Miscellaneous > Automatic Workflow`. .. todo:: document the configuration diff --git a/connector_magento/doc/howto/configure_exception_rules.rst b/connector_magento/doc/howto/configure_exception_rules.rst index 574567c95..fffc6e24f 100644 --- a/connector_magento/doc/howto/configure_exception_rules.rst +++ b/connector_magento/doc/howto/configure_exception_rules.rst @@ -6,7 +6,7 @@ Howto: configure exception rules ################################ Find the configuration in the menu -`Sales > Configuration > Sales > Exception Rules`. +`Sales > Configuration > Miscellaneous > Exception Rules`. .. todo:: document the configuration diff --git a/connector_magento/doc/howto/configure_payment_methods.rst b/connector_magento/doc/howto/configure_payment_methods.rst deleted file mode 100644 index d778913dc..000000000 --- a/connector_magento/doc/howto/configure_payment_methods.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. _configure-payment-methods: - - -################################ -Howto: configure payment methods -################################ - -Find the configuration in the menu -`Sales > Configuration > Sales > Payment Methods`. - -The name of the payment method is the code of the payment in Magento, -for instance: `checkmo`. - -.. todo:: document the configuration diff --git a/connector_magento/doc/howto/configure_payment_modes.rst b/connector_magento/doc/howto/configure_payment_modes.rst new file mode 100644 index 000000000..f3e9970d6 --- /dev/null +++ b/connector_magento/doc/howto/configure_payment_modes.rst @@ -0,0 +1,14 @@ +.. _configure-payment-modes: + + +############################## +Howto: configure payment modes +############################## + +Find the configuration in the menu +`Invoicing > Configuration > Management > Payment Modes`. + +The name of the payment mode is the code of the payment in Magento, +for instance: `checkmo`. + +.. todo:: document the configuration diff --git a/connector_magento/doc/howto/configure_pricing.rst b/connector_magento/doc/howto/configure_pricing.rst deleted file mode 100644 index 217e41e3b..000000000 --- a/connector_magento/doc/howto/configure_pricing.rst +++ /dev/null @@ -1,41 +0,0 @@ -.. _configure-pricing: - - -######################## -How to configure pricing -######################## - -Install the pricing extensions by going in: `Settings > Configuration > -Connector` and by checking the `Price are managed in Odoo with -pricelists` option. - -********************************** -Prices are shared accross websites -********************************** - -The pricelist used for the prices sent to Magento is configured on the -Magento Backend (`Connectors > Magento > Backends`). - -************************************* -Prices are different accross websites -************************************* - -.. note:: Verify that the option `Use pricelists to adapt your price per - customers` is active in the Odoo `Settings > Configuration - > Sales`. - -The pricelist used for the prices sent to Magento is configured on the -Magento Backend (`Connectors > Magento > Backends`). Magento will use -theses prices as default prices. - -.. note:: In Magento, the default is to share the prices between websites. - If you want to have different prices per websites, go to - `System > Catalog > Catalog > Price` and set the `Catalog - Price Scope` to `Website` instead of `Global`. - -When you need different prices for a website, set the pricelist for this -website in `Connectors > Magento > Websites`. - -.. warning:: The prices are actually updated on Magento when the price - is changed on the products, not when a pricelist is - modified. diff --git a/connector_magento/doc/howto/configure_shipping_methods.rst b/connector_magento/doc/howto/configure_shipping_methods.rst index f49fd74ca..888623da4 100644 --- a/connector_magento/doc/howto/configure_shipping_methods.rst +++ b/connector_magento/doc/howto/configure_shipping_methods.rst @@ -6,7 +6,7 @@ How to configure shipping methods ################################# Find the configuration in the menu -`Warehouse > Configuration > Delivery Methods`. +`Inventory > Configuration > Delivery > Delivery Methods`. For each shipping method in Magento, you need to create a delivery method in Odoo. diff --git a/connector_magento/doc/howto/configure_taxes.rst b/connector_magento/doc/howto/configure_taxes.rst index 190e51d2b..6eed3b70d 100644 --- a/connector_magento/doc/howto/configure_taxes.rst +++ b/connector_magento/doc/howto/configure_taxes.rst @@ -1,9 +1,9 @@ .. _configure-taxes: -######################## +###################### How to configure taxes -######################## +###################### The connector imports products prices and sale order line unit prices with taxes excluded by default. diff --git a/connector_magento/doc/index.rst b/connector_magento/doc/index.rst index 1ed666afb..25ef4bb1e 100644 --- a/connector_magento/doc/index.rst +++ b/connector_magento/doc/index.rst @@ -7,14 +7,12 @@ Odoo Magento Connector ###################### -*Odoo Magento Connector* (also known as *MagentoERPconnect*) is a -bi-directional connector, 100% compatible with the last `Odoo`_ 8.0 and -latest `Magento`_ versions. +*Odoo Magento Connector* connects Odoo to Magento, 100% compatible with the +last `Odoo`_ 10.0 and latest `Magento`_ versions. -Based on the `Odoo Connector`_ framework, this new release of -MagentoERPconnect has been initiated by `Camptocamp`_ and is mainly -developed and maintained by `Camptocamp`_ and `Akretion`_ with several other -:ref:`contributors`. +Based on the `Odoo Connector`_ framework, this implementation has been +initiated by `Camptocamp`_ and is mainly developed and maintained by +`Camptocamp`_, `Acsone`_, `Akretion`_ with several other :ref:`contributors`. *Subscribe to the* `project's mailing list (name: Connectors)`_ @@ -33,7 +31,7 @@ Core Features * **Built on top of the** `Odoo Connector`_ **framework with a strong and efficient core**: it can then be extended or modified easily from separate addons -* **Payment workflow automation**: depending on the mean of payment (credit +* **Payment workflow automation**: depending on the mode of payment (credit card, wire transfer), possibility to automate workflows in Odoo (automatic order validation, automatic invoice validation…). For instance, a sales order paid by credit card will automatically @@ -42,9 +40,10 @@ Core Features than 10'000 sales orders** from Magento to Odoo! .. _`Odoo Connector`: http://www.odoo-connector.com -.. _Camptocamp: http://www.camptocamp.com +.. _Camptocamp: https://www.camptocamp.com .. _Odoo: http://www.odoo.com -.. _Magento: http://www.magento.com +.. _Magento: https://www.magento.com +.. _Acsone: https://acsone.eu .. _Akretion: http://www.akretion.com .. _`source code is available on GitHub`: https://github.com/OCA/connector-magento .. _`AGPL version 3`: http://www.gnu.org/licenses/agpl-3.0.html @@ -98,8 +97,7 @@ Be efficient using and configuring the connector. howto/configure_translations howto/configure_warehouse - howto/configure_pricing - howto/configure_payment_methods + howto/configure_payment_modes howto/configure_automatic_workflows howto/configure_exception_rules howto/configure_shipping_methods @@ -132,44 +130,19 @@ Tutorials .. toctree:: :maxdepth: 2 - guides/tutorial_development guides/tutorial_customize API === -General API ------------ - .. toctree:: :maxdepth: 2 - api/api_connector.rst - api/api_consumer.rst - api/api_backend.rst - api/api_binder.rst - api/api_synchronizer.rst - api/api_backend_adapter.rst + api/api_components.rst + api/api_models.rst api/api_exception.rst -Models API ----------- - -.. toctree:: - :maxdepth: 2 - - api/api_delivery.rst - api/api_invoice.rst - api/api_magento_model.rst - api/api_partner.rst - api/api_partner_category.rst - api/api_product.rst - api/api_product_category.rst - api/api_sale.rst - api/api_stock_picking.rst - api/api_stock_tracking.rst - ******* Project @@ -180,7 +153,6 @@ Project project/roadmap project/contributors - project/changes ****************** Indices and tables diff --git a/connector_magento/doc/project/changes.rst b/connector_magento/doc/project/changes.rst deleted file mode 100644 index c27bae7a1..000000000 --- a/connector_magento/doc/project/changes.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _changes: - -####### -Changes -####### - -.. include:: ../../CHANGES.rst - :start-line: 3 diff --git a/connector_magento/doc/project/contribute.rst b/connector_magento/doc/project/contribute.rst index 8a6bcc20b..5e458e5fb 100644 --- a/connector_magento/doc/project/contribute.rst +++ b/connector_magento/doc/project/contribute.rst @@ -4,121 +4,36 @@ Developer's guide ################# -.. contents:: Sections: - :local: - :backlinks: top +.. _installation-dev-env: -.. _installation-with-buildout: +*************** +Dev Environment +*************** -******************************************** -Connector with batteries included (buildout) -******************************************** - -Installing the buildout -======================= +Installing the dev environment with Docker +========================================== When you want to install the Magento connector, you can either install it manually -using the :ref:`installation-guide` or either using our automated Buildout_ config. +using the :ref:`installation-guide` or either using our Docker config. The manual installation is recommended if you need to add it on an existing installation or if you want to control your environment in your own manner. -The Buildout_ config is an all-in-one package which installs Odoo, the -connector and provides many facilities for the developers, -it is based on the `Anybox Buildout Recipe`_. +The Docker config is an all-in-one package which installs Odoo, the +connector, Magento and provides niceties for the developers. + It includes developer tools such as: * Run the tests on the connector / Magento connector * Build the connector / Magento connector documentation * Launch the Jobs Workers (for multiprocessing) -So we highly recommend to use this configuration for development. - -Here are the configuration files https://github.com/guewen/odoo-connector-magento-buildout. +The dev environment is on: https://github.com/guewen/odoo-magento-connector-workspace Clone the repo:: - $ git clone https://github.com/guewen/odoo-connector-magento-buildout.git -b 8.0 odoo-connector-magento - -and follow the installation steps. - -.. warning:: System dependencies to build the eggs: libxml2-dev libxslt1-dev - that you need to install with apt-get, yum, ... - You can also use http://pythonhosted.org/anybox.recipe.openerp/first_steps.html#installing-build-dependencies - -Head over the next sections to discover the included tools - -.. _Buildout: http://www.buildout.org -.. _`Anybox Buildout Recipe`: https://pypi.python.org/pypi/anybox.recipe.openerp - -Start Odoo -========== - -All the commands are launched from the root directory of the buildout. - -In standalone mode (jobs will be threaded):: - - $ bin/start_openerp - -With workers (multiprocessing), you need to start dedicated Connector Workers for the jobs:: - - $ bin/start_openerp --workers=4 - $ bin/start_connector_worker --workers=2 - -Start with Supervisord -====================== - -To start the supervisord daemon, run:: - - $ bin/supervisord - -The default configuration starts Odoo with 4 workers and 2 Connector -workers. This can be changed in the buildout.cfg file in the ``supervisor`` section. - -The services can be managed on:: + $ git clone https://github.com/guewen/odoo-magento-connector-workspace/ -b 10.0 - $ bin/supervisorctl - -Run the tests -============= - -The Magento Connector and the Connector framework do not use YAML tests, but only -``unittest2`` tests. The following command lines will run them:: - - $ bin/runtests --database db-name -u connector - $ bin/runtests --database db-name -u connector_magento - -Use the help arguments for more information about the options:: - - $ bin/runtests --help - $ bin/runtests --help-oe - -Build the documentation -======================= - -The documentation uses Sphinx_, use the following lines to build them in HTML:: - - $ bin/sphinxbuilder_connector - $ bin/sphinxbuilder_connector_magento - -They will be built in the ``docs`` directory at the root of the buildout. - -.. _Sphinx: http://www.sphinx-doc.org - -***************** -Magento on Docker -***************** - -If you want to develop a generic feature on the Magento Connector, we -recommend to use the `Magento - Odoo Connector docker image`_. It -installs Magento 1.7 with the sample database and the Magento (PHP) part -of the Connector. - -The project's page on Github describe the installation process, just -follow them. - -We also use this image as a reference for the data of the tests. - -.. _`Magento - Odoo Connector docker image`: https://github.com/guewen/docker-magento +and follow the installation steps described in the README of the project.. *********** How to help @@ -167,7 +82,7 @@ The PR process is the following: 1. Fork the project on https://github.com/OCA/connector-magento #. Work on your branch, develop a feature or fix a bug. Please include a test (`Writing tests`_). -#. Ensure that the tests are green (`Run the tests`_) +#. Ensure that the tests are green #. Ensure that pep8 is repected #. Open a Pull Request on GitHub #. Travis will automatically test pep8 and launch the tests. If Travis fails, @@ -186,8 +101,6 @@ project, so you will need to clone the repository, working on the documentation follow the instructions in the section `Submit Pull Requests for features or fixes`_ to propose your changes. -You will also need to read this section: `Build the documentation`_. - Translations ============ @@ -227,8 +140,6 @@ The reference data we use are those of the Magento demo data. # we can now check many things in the cassette itself self.assertEqual(1, len(cassette.requests)) -See how to `Run the tests`_ - Useful links: * unittest documentation: https://docs.python.org/2/library/unittest.html diff --git a/connector_magento/models/magento_backend/importer.py b/connector_magento/models/magento_backend/importer.py index 7d3bd68b0..36662cc3e 100644 --- a/connector_magento/models/magento_backend/importer.py +++ b/connector_magento/models/magento_backend/importer.py @@ -13,6 +13,7 @@ class MetadataBatchImporter(Component): They are imported directly because this is a rare and fast operation, and we don't really bother if it blocks the UI during this time. (that's also a mean to rapidly check the connectivity with Magento). + """ _name = 'magento.metadata.batch.importer' diff --git a/connector_magento/models/magento_binding/common.py b/connector_magento/models/magento_binding/common.py index 7d526263e..81016165a 100644 --- a/connector_magento/models/magento_binding/common.py +++ b/connector_magento/models/magento_binding/common.py @@ -7,7 +7,7 @@ class MagentoBinding(models.AbstractModel): - """ Abstract Model for the Bindigs. + """ Abstract Model for the Bindings. All the models used as bindings between Magento and Odoo (``magento.res.partner``, ``magento.product.product``, ...) should diff --git a/connector_magento/models/product_category/importer.py b/connector_magento/models/product_category/importer.py index 2c20b5bbc..0398d8fe6 100644 --- a/connector_magento/models/product_category/importer.py +++ b/connector_magento/models/product_category/importer.py @@ -22,7 +22,8 @@ class ProductCategoryBatchImporter(Component): def _import_record(self, external_id, job_options=None): """ Delay a job for the import """ super(ProductCategoryBatchImporter, self)._import_record( - external_id, job_options=job_options) + external_id, job_options=job_options + ) def run(self, filters=None): """ Run the synchronization """ From 9d1200b06994243eb222f9c068338fb64258f954 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Tue, 11 Jul 2017 14:08:49 +0200 Subject: [PATCH 08/31] Various fixes --- connector_magento/components/backend_adapter.py | 7 ++++++- connector_magento/models/sale_order/importer.py | 6 ++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/connector_magento/components/backend_adapter.py b/connector_magento/components/backend_adapter.py index 923937863..1012dad7d 100644 --- a/connector_magento/components/backend_adapter.py +++ b/connector_magento/components/backend_adapter.py @@ -6,13 +6,18 @@ import logging import xmlrpclib -import magento as magentolib from odoo.addons.component.core import AbstractComponent from odoo.addons.queue_job.exception import RetryableJobError from odoo.addons.connector.exception import NetworkRetryableError from datetime import datetime + _logger = logging.getLogger(__name__) +try: + import magento as magentolib +except ImportError: + _logger.debug("Cannot import 'magento'") + MAGENTO_DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S' diff --git a/connector_magento/models/sale_order/importer.py b/connector_magento/models/sale_order/importer.py index 04766212e..93f8520d7 100644 --- a/connector_magento/models/sale_order/importer.py +++ b/connector_magento/models/sale_order/importer.py @@ -145,9 +145,9 @@ def _add_shipping_line(self, map_record, values): record = map_record.source amount_incl = float(record.get('base_shipping_incl_tax') or 0.0) amount_excl = float(record.get('shipping_amount') or 0.0) - if not (amount_incl or amount_excl): - return values line_builder = self.component(usage='order.line.builder.shipping') + # add even if the price is 0, otherwise odoo will add a shipping + # line in the order when we ship the picking if self.options.tax_include: discount = float(record.get('shipping_discount_amount') or 0.0) line_builder.price_unit = (amount_incl - discount) @@ -249,11 +249,9 @@ def shipping_method(self, record): result = {'carrier_id': carrier.id} else: # FIXME: a mapper should not have any side effects - fake_partner = self.env['res.partner'].search([], limit=1) product = self.env.ref( 'connector_ecommerce.product_product_shipping') carrier = self.env['delivery.carrier'].create({ - 'partner_id': fake_partner.id, 'product_id': product.id, 'name': ifield, 'magento_code': ifield}) From 8ef3383ea11b5012c2582eee50a201ef03a59d02 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Wed, 12 Jul 2017 08:45:40 +0200 Subject: [PATCH 09/31] Add dependency on product_multi_category I removed it earlier, but it is required when we import products --- connector_magento/__manifest__.py | 1 + connector_magento/doc/guides/installation_guide.rst | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/connector_magento/__manifest__.py b/connector_magento/__manifest__.py index 55f68e5d4..ac460e8ae 100644 --- a/connector_magento/__manifest__.py +++ b/connector_magento/__manifest__.py @@ -10,6 +10,7 @@ 'product', 'delivery', 'sale_stock', + 'product_multi_category', 'connector_ecommerce', ], 'external_dependencies': { diff --git a/connector_magento/doc/guides/installation_guide.rst b/connector_magento/doc/guides/installation_guide.rst index 3cd1d3849..a6a1a863e 100644 --- a/connector_magento/doc/guides/installation_guide.rst +++ b/connector_magento/doc/guides/installation_guide.rst @@ -34,6 +34,7 @@ Clone the repositories below in the path where you chosed to store the addons:: $ git clone git@github.com:OCA/connector-magento.git -b 10.0 $ git clone git@github.com:OCA/sale-workflow.git -b 10.0 $ git clone git@github.com:OCA/partner-contact.git -b 10.0 + $ git clone git@github.com:OCA/product-attribute.git -b 10.0 $ git clone git@github.com:OCA/bank-payment.git -b 10.0 $ git clone git@github.com:OCA/server-tools.git -b 10.0 @@ -45,7 +46,7 @@ line or adding them in the Odoo server configuration file. Example using the command line argument:: - $ /path/to/odoo --addons-path /path/to/queue,/path/to/connector,/path/to/connector-ecommerce,/path/to/connector-magento,/path/to/e-commerce,/path/to/sale-workflow,/path/to/partner-contact,/path/to/bank-payment,/path/to/server-tools + $ /path/to/odoo --addons-path /path/to/queue,/path/to/connector,/path/to/connector-ecommerce,/path/to/connector-magento,/path/to/e-commerce,/path/to/sale-workflow,/path/to/partner-contact,/path/to/product-attribute,/path/to/bank-payment,/path/to/server-tools You also need to install the ``magento`` Python package. So install it with either pip or either easy_install (ideally in a virtualenv):: From 7c386e65a55c2162a0897c2a7a02a1067a5a7694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Pigeon?= Date: Wed, 12 Jul 2017 09:54:18 +0200 Subject: [PATCH 10/31] Manage multi-company backend --- connector_magento/__manifest__.py | 1 + .../models/magento_backend/common.py | 26 +++++++++++ .../models/magento_store/common.py | 1 + .../models/magento_storeview/common.py | 13 +++++- .../models/magento_website/common.py | 1 + connector_magento/models/partner/importer.py | 4 ++ connector_magento/models/product/common.py | 6 ++- .../models/sale_order/importer.py | 6 +++ .../tests/test_export_product_stock.py | 43 +++++++++++++++++-- .../tests/test_import_partner.py | 33 ++++++++++++++ .../views/magento_backend_views.xml | 10 +++++ 11 files changed, 139 insertions(+), 5 deletions(-) diff --git a/connector_magento/__manifest__.py b/connector_magento/__manifest__.py index ac460e8ae..775a5eba0 100644 --- a/connector_magento/__manifest__.py +++ b/connector_magento/__manifest__.py @@ -7,6 +7,7 @@ 'version': '10.0.1.0.0', 'category': 'Connector', 'depends': ['account', + 'base_technical_user', 'product', 'delivery', 'sale_stock', diff --git a/connector_magento/models/magento_backend/common.py b/connector_magento/models/magento_backend/common.py index 808be3ade..2750d19fd 100644 --- a/connector_magento/models/magento_backend/common.py +++ b/connector_magento/models/magento_backend/common.py @@ -157,6 +157,12 @@ def _get_stock_field_id(self): 'The value can also be specified on website or the store or the ' 'store view.' ) + is_multi_company = fields.Boolean( + string='Is Backend Multi-Company', + help="If this flag is set, it is possible to choose warehouse at each " + "level. " + "When import partner, ignore company_id if this flag is set.", + ) _sql_constraints = [ ('sale_prefix_uniq', 'unique(sale_prefix)', @@ -357,6 +363,15 @@ class MagentoConfigSpecializer(models.AbstractModel): 'The value can also be specified on website or the store or the ' 'store view.' ) + specific_warehouse_id = fields.Many2one( + comodel_name='stock.warehouse', + string='Specific warehouse', + help='If specified, this warehouse will be used to load fill the ' + 'field warehouse (and company) on the sale order created by the ' + 'connector.' + 'The value can also be specified on website or the store or the ' + 'store view.' + ) account_analytic_id = fields.Many2one( comodel_name='account.analytic.account', string='Analytic account', @@ -367,6 +382,10 @@ class MagentoConfigSpecializer(models.AbstractModel): string='Fiscal position', compute='_get_fiscal_position_id', ) + warehouse_id = fields.Many2one( + comodel_name='stock.warehouse', + string='warehouse', + compute='_get_warehouse_id') @property def _parent(self): @@ -385,3 +404,10 @@ def _get_fiscal_position_id(self): this.fiscal_position_id = ( this.specific_fiscal_position_id or this._parent.fiscal_position_id) + + @api.multi + def _get_warehouse_id(self): + for this in self: + this.warehouse_id = ( + this.specific_warehouse_id or + this._parent.warehouse_id) diff --git a/connector_magento/models/magento_store/common.py b/connector_magento/models/magento_store/common.py index f2e6e4d2f..15eb63348 100644 --- a/connector_magento/models/magento_store/common.py +++ b/connector_magento/models/magento_store/common.py @@ -58,6 +58,7 @@ class MagentoStore(models.Model): "payment method is not giving an option for this by " "itself. (See Payment Methods)", ) + is_multi_company = fields.Boolean(related="backend_id.is_multi_company") class StoreAdapter(Component): diff --git a/connector_magento/models/magento_storeview/common.py b/connector_magento/models/magento_storeview/common.py index 94e046860..16bd4375b 100644 --- a/connector_magento/models/magento_storeview/common.py +++ b/connector_magento/models/magento_storeview/common.py @@ -51,6 +51,7 @@ class MagentoStoreview(models.Model): 'but its sales orders should not be imported.', ) catalog_price_tax_included = fields.Boolean(string='Prices include tax') + is_multi_company = fields.Boolean(related="backend_id.is_multi_company") @api.multi def import_sale_orders(self): @@ -61,13 +62,23 @@ def import_sale_orders(self): "but is configured not to import the " "sales orders", storeview.name) continue + + user = storeview.sudo().warehouse_id.company_id.user_tech_id + if not user: + user = self.env['res.users'].browse(self.env.uid) + + sale_binding_model = self.env['magento.sale.order'] + if user != self.env.user: + sale_binding_model = sale_binding_model.sudo(user) + backend = storeview.backend_id if storeview.import_orders_from_date: from_string = fields.Datetime.from_string from_date = from_string(storeview.import_orders_from_date) else: from_date = None - delayable = self.env['magento.sale.order'].with_delay(priority=1) + + delayable = sale_binding_model.with_delay(priority=1) filters = { 'magento_storeview_id': storeview.external_id, 'from_date': from_date, diff --git a/connector_magento/models/magento_website/common.py b/connector_magento/models/magento_website/common.py index 722a5117f..f6167f325 100644 --- a/connector_magento/models/magento_website/common.py +++ b/connector_magento/models/magento_website/common.py @@ -35,6 +35,7 @@ class MagentoWebsite(models.Model): string='Magento Products', readonly=True, ) + is_multi_company = fields.Boolean(related="backend_id.is_multi_company") @api.multi def import_partners(self): diff --git a/connector_magento/models/partner/importer.py b/connector_magento/models/partner/importer.py index 96d02b9ff..789f1ea8b 100644 --- a/connector_magento/models/partner/importer.py +++ b/connector_magento/models/partner/importer.py @@ -91,6 +91,8 @@ def website_id(self, record): @only_create @mapping def company_id(self, record): + if self.backend_record.is_multi_company: + return {'company_id': False} binder = self.binder_for(model='magento.storeview') storeview = binder.to_internal(record['store_id']) if storeview: @@ -307,6 +309,8 @@ def title(self, record): @only_create @mapping def company_id(self, record): + if self.backend_record.is_multi_company: + return {'company_id': False} parent = self.options.parent_partner if parent: if parent.company_id: diff --git a/connector_magento/models/product/common.py b/connector_magento/models/product/common.py index dff49c977..ec72f3d8b 100644 --- a/connector_magento/models/product/common.py +++ b/connector_magento/models/product/common.py @@ -131,7 +131,11 @@ def _recompute_magento_qty_backend(self, backend, products, else: stock_field = 'virtual_available' - location = backend.warehouse_id.lot_stock_id + location = self.env['stock.location'] + if self.env.context.get('location'): + location = location.browse(self.env.context['location']) + else: + location = backend.warehouse_id.lot_stock_id product_fields = ['magento_qty', stock_field] if read_fields: diff --git a/connector_magento/models/sale_order/importer.py b/connector_magento/models/sale_order/importer.py index 93f8520d7..bec1da8be 100644 --- a/connector_magento/models/sale_order/importer.py +++ b/connector_magento/models/sale_order/importer.py @@ -276,6 +276,12 @@ def fiscal_position(self, record): if fiscal_position: return {'fiscal_position_id': fiscal_position.id} + @mapping + def warehouse_id(self, record): + warehouse = self.options.storeview.warehouse_id + if warehouse: + return {'warehouse_id': warehouse.id} + # partner_id, partner_invoice_id, partner_shipping_id # are done in the importer diff --git a/connector_magento/tests/test_export_product_stock.py b/connector_magento/tests/test_export_product_stock.py index 2381d5f1a..1a5fbfa6f 100644 --- a/connector_magento/tests/test_export_product_stock.py +++ b/connector_magento/tests/test_export_product_stock.py @@ -8,10 +8,13 @@ class TestUpdateStockQty(MagentoSyncTestCase): """ Test the export of pickings to Magento """ - def _product_change_qty(self, product, new_qty): + def _product_change_qty(self, product, new_qty, location_id=False): wizard_model = self.env['stock.change.product.qty'] - wizard = wizard_model.create({'product_id': product.id, - 'new_quantity': new_qty}) + data = {'product_id': product.id, + 'new_quantity': new_qty} + if location_id: + data['location_id'] = location_id + wizard = wizard_model.create(data) wizard.change_product_qty() def setUp(self): @@ -178,3 +181,37 @@ def test_export_product_inventory_write_job(self): }]), self.parse_cassette_request(cassette.requests[1].body) ) + + def test_compute_new_qty(self): + product = self.binding_product.odoo_id + binding = self.binding_product + # start with 0 + self.assertEqual(product.virtual_available, 0.0) + self.assertEqual(binding.magento_qty, 0.0) + + my_location_id = self.env.ref("stock.stock_location_components").id + + # change to 30 + self._product_change_qty(product, 30) + self._product_change_qty(product, 5, my_location_id) + + # the virtual available is 30, the magento qty has not been + # updated yet + self.assertEqual(product.virtual_available, 35.0) + self.assertEqual(binding.magento_qty, 0.0) + + # search for the new quantities to push to Magento + # we mock the job so we can check it .delay() is called on it + # when the quantity is changed + with self.mock_with_delay() as (delayable_cls, delayable): + binding.recompute_magento_qty() + self.assertEqual(binding.magento_qty, 5.0) + + self.assertEqual(1, delayable_cls.call_count) + delay_args, delay_kwargs = delayable_cls.call_args + self.assertEqual((binding,), delay_args) + self.assertEqual(20, delay_kwargs.get('priority')) + + delayable.export_inventory.assert_called_with( + fields=['magento_qty'], + ) diff --git a/connector_magento/tests/test_import_partner.py b/connector_magento/tests/test_import_partner.py index f211fddbb..0fb8c3cf4 100644 --- a/connector_magento/tests/test_import_partner.py +++ b/connector_magento/tests/test_import_partner.py @@ -53,6 +53,8 @@ def test_import_partner_individual_1_address(self): self.assertEqual(address_bind.external_id, '92', msg="The merged address should be the " "billing address") + self.assertEqual(partner.company_id.id, + self.backend.warehouse_id.company_id.id) @recorder.use_cassette def test_import_partner_individual_2_addresses(self): @@ -81,6 +83,10 @@ def test_import_partner_individual_2_addresses(self): self.assertEqual(partner.child_ids[0].type, 'delivery', msg="The shipping address should be of " "type 'delivery'") + self.assertEqual(partner.company_id.id, + self.backend.company_id.id) + self.assertEqual(partner.child_ids[0].company_id.id, + self.backend.company_id.id) @recorder.use_cassette def test_import_partner_company_1_address(self): @@ -141,3 +147,30 @@ def get_address(external_id): self.assertEqual(address.type, 'delivery', msg="The shipping address should be of " "type 'delivery'") + + @recorder.use_cassette('test_import_partner_individual_2_addresses') + def test_import_partner_individual_2_addresses_multi_company(self): + """Import an invidual on multi backend company""" + self.backend.is_multi_company = True + self.env['magento.res.partner'].import_record(self.backend, '65') + + partner = self.model.search([('external_id', '=', '65'), + ('backend_id', '=', self.backend.id)]) + self.assertEqual(len(partner), 1) + # Name of the billing address + self.assertEqual(partner.name, u'Tay Ray') + self.assertEqual(partner.type, 'contact') + # billing address merged with the partner, + # second address as a contact + self.assertEqual(len(partner.child_ids), 1) + self.assertEqual(len(partner.magento_bind_ids), 1) + self.assertEqual(len(partner.magento_address_bind_ids), 1) + address_bind = partner.magento_address_bind_ids[0] + self.assertEqual(address_bind.external_id, '35', + msg="The merged address should be the " + "billing address") + self.assertEqual(partner.child_ids[0].type, 'delivery', + msg="The shipping address should be of " + "type 'delivery'") + self.assertFalse(partner.company_id.id) + self.assertFalse(partner.child_ids[0].company_id.id) diff --git a/connector_magento/views/magento_backend_views.xml b/connector_magento/views/magento_backend_views.xml index bf77bd071..3fcda580d 100644 --- a/connector_magento/views/magento_backend_views.xml +++ b/connector_magento/views/magento_backend_views.xml @@ -131,6 +131,7 @@ domain="[('model', 'in', ['product.product', 'product.template']), ('ttype', '=', 'float')]"/> + @@ -187,6 +188,9 @@ + + + @@ -257,6 +261,9 @@ + + + @@ -317,6 +324,9 @@ + + + From 0b8c8318a7cece86c499c1f5ab270ef7d2078db7 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Wed, 12 Jul 2017 10:31:42 +0200 Subject: [PATCH 11/31] Fix Pylint warnings --- connector_magento/README.rst | 2 -- connector_magento/components/exporter.py | 4 ++-- connector_magento/models/magento_backend/common.py | 12 ++++++------ connector_magento/models/sale_order/common.py | 7 +++---- connector_magento/models/stock_picking/exporter.py | 2 +- connector_magento/tests/common.py | 4 ++++ 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/connector_magento/README.rst b/connector_magento/README.rst index 6e89c6ed7..d3fa32ae0 100644 --- a/connector_magento/README.rst +++ b/connector_magento/README.rst @@ -67,8 +67,6 @@ Technical points: .. _connector: https://github.com/OCA/connector .. _connector_ecommerce: https://github.com/OCA/connector-ecommerce -.. _Camptocamp: http://www.camptocamp.com -.. _Akretion: http://www.akretion.com .. _`source is on GitHub`: https://github.com/OCA/connector-magento Installation diff --git a/connector_magento/components/exporter.py b/connector_magento/components/exporter.py index b1571ff5f..95ec38320 100644 --- a/connector_magento/components/exporter.py +++ b/connector_magento/components/exporter.py @@ -104,7 +104,7 @@ def run(self, binding, *args, **kwargs): # The commit will also release the lock acquired on the binding # record if not odoo.tools.config['test_enable']: - self.env.cr.commit() + self.env.cr.commit() # noqa self._after_export() return result @@ -274,7 +274,7 @@ def _export_dependency(self, relation, binding_model, # the same binding. It will be caught and # raise a RetryableJobError. if not odoo.tools.config['test_enable']: - self.env.cr.commit() + self.env.cr.commit() # noqa else: # If magento_bind_ids does not exist we are typically in a # "direct" binding (the binding record is the same record). diff --git a/connector_magento/models/magento_backend/common.py b/connector_magento/models/magento_backend/common.py index 2750d19fd..f08493b22 100644 --- a/connector_magento/models/magento_backend/common.py +++ b/connector_magento/models/magento_backend/common.py @@ -375,38 +375,38 @@ class MagentoConfigSpecializer(models.AbstractModel): account_analytic_id = fields.Many2one( comodel_name='account.analytic.account', string='Analytic account', - compute='_get_account_analytic_id', + compute='_compute_account_analytic_id', ) fiscal_position_id = fields.Many2one( comodel_name='account.fiscal.position', string='Fiscal position', - compute='_get_fiscal_position_id', + compute='_compute_fiscal_position_id', ) warehouse_id = fields.Many2one( comodel_name='stock.warehouse', string='warehouse', - compute='_get_warehouse_id') + compute='_compute_warehouse_id') @property def _parent(self): return getattr(self, self._parent_name) @api.multi - def _get_account_analytic_id(self): + def _compute_account_analytic_id(self): for this in self: this.account_analytic_id = ( this.specific_account_analytic_id or this._parent.account_analytic_id) @api.multi - def _get_fiscal_position_id(self): + def _compute_fiscal_position_id(self): for this in self: this.fiscal_position_id = ( this.specific_fiscal_position_id or this._parent.fiscal_position_id) @api.multi - def _get_warehouse_id(self): + def _compute_warehouse_id(self): for this in self: this.warehouse_id = ( this.specific_warehouse_id or diff --git a/connector_magento/models/sale_order/common.py b/connector_magento/models/sale_order/common.py index c808a3536..e2928197b 100644 --- a/connector_magento/models/sale_order/common.py +++ b/connector_magento/models/sale_order/common.py @@ -35,11 +35,11 @@ class MagentoSaleOrder(models.Model): ) total_amount = fields.Float( string='Total amount', - digits_compute=dp.get_precision('Account') + digits=dp.get_precision('Account') ) total_amount_tax = fields.Float( string='Total amount w. tax', - digits_compute=dp.get_precision('Account') + digits=dp.get_precision('Account') ) magento_order_id = fields.Integer(string='Magento Order ID', help="'order_id' field in Magento") @@ -83,7 +83,6 @@ class SaleOrder(models.Model): string="Magento Bindings", ) - @api.one @api.depends('magento_bind_ids', 'magento_bind_ids.magento_parent_id') def get_parent_id(self): """ Return the parent order. @@ -172,7 +171,7 @@ class MagentoSaleOrderLine(models.Model): required=False, ) tax_rate = fields.Float(string='Tax Rate', - digits_compute=dp.get_precision('Account')) + digits=dp.get_precision('Account')) notes = fields.Char() @api.model diff --git a/connector_magento/models/stock_picking/exporter.py b/connector_magento/models/stock_picking/exporter.py index d47f875c8..0d1d634a0 100644 --- a/connector_magento/models/stock_picking/exporter.py +++ b/connector_magento/models/stock_picking/exporter.py @@ -96,4 +96,4 @@ def run(self, binding): self.binder.bind(external_id, binding) # ensure that we store the external ID if not odoo.tools.config['test_enable']: - self.env.cr.commit() + self.env.cr.commit() # noqa diff --git a/connector_magento/tests/common.py b/connector_magento/tests/common.py index 18fdf5ce2..a98bd78b7 100644 --- a/connector_magento/tests/common.py +++ b/connector_magento/tests/common.py @@ -2,6 +2,10 @@ # Copyright 2013-2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) +# pylint: disable=missing-manifest-dependency +# disable warning on 'vcr' missing in manifest: this is only a dependency for +# dev/tests + """ Helpers usable in the tests """ From 7db239c834d84959f4a2b5d507f6241fa5534437 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Thu, 13 Jul 2017 18:15:38 +0200 Subject: [PATCH 12/31] Remove deprecated select for index creation --- connector_magento/models/sale_order/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/connector_magento/models/sale_order/common.py b/connector_magento/models/sale_order/common.py index e2928197b..3cd706de0 100644 --- a/connector_magento/models/sale_order/common.py +++ b/connector_magento/models/sale_order/common.py @@ -157,7 +157,7 @@ class MagentoSaleOrderLine(models.Model): string='Magento Sale Order', required=True, ondelete='cascade', - select=True) + index=True) odoo_id = fields.Many2one(comodel_name='sale.order.line', string='Sale Order Line', required=True, From c8ccf33faa8d3b9dccf13bc371bfc54e5da54576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Pigeon?= Date: Fri, 21 Jul 2017 13:42:40 +0200 Subject: [PATCH 13/31] [FIX] pass http credentials to backedn component if required --- connector_magento/models/magento_backend/common.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/connector_magento/models/magento_backend/common.py b/connector_magento/models/magento_backend/common.py index f08493b22..4a37d90c8 100644 --- a/connector_magento/models/magento_backend/common.py +++ b/connector_magento/models/magento_backend/common.py @@ -194,6 +194,10 @@ def work_on(self, model_name, **kwargs): self.password, use_custom_api_path=self.use_custom_api_path ) + if self.use_auth_basic: + magento_location.use_auth_basic = True + magento_location.auth_basic_username = self.auth_basic_username + magento_location.auth_basic_password = self.auth_basic_password # We create a Magento Client API here, so we can create the # client once (lazily on the first use) and propagate it # through all the sync session, instead of recreating a client From a89171200be31e9a7ab6ba6a8ddc3f5ab882b4b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Pigeon?= Date: Wed, 26 Jul 2017 11:11:13 +0200 Subject: [PATCH 14/31] [FIX] change user on backend otherwise import sale order will be done on the wrong one --- connector_magento/models/magento_storeview/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/connector_magento/models/magento_storeview/common.py b/connector_magento/models/magento_storeview/common.py index 16bd4375b..4a09d1059 100644 --- a/connector_magento/models/magento_storeview/common.py +++ b/connector_magento/models/magento_storeview/common.py @@ -71,7 +71,7 @@ def import_sale_orders(self): if user != self.env.user: sale_binding_model = sale_binding_model.sudo(user) - backend = storeview.backend_id + backend = storeview.sudo(user).backend_id if storeview.import_orders_from_date: from_string = fields.Datetime.from_string from_date = from_string(storeview.import_orders_from_date) From 7bb27d7ca11017dc6eb85bf71b44ee3057e05492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Pigeon?= Date: Wed, 26 Jul 2017 16:35:22 +0200 Subject: [PATCH 15/31] [CHG]review product aggregation by backend to improve performance --- connector_magento/models/product/common.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/connector_magento/models/product/common.py b/connector_magento/models/product/common.py index ec72f3d8b..9e0a92bc7 100644 --- a/connector_magento/models/product/common.py +++ b/connector_magento/models/product/common.py @@ -108,12 +108,13 @@ def recompute_magento_qty(self): informations for each product. """ # group products by backend - backends = defaultdict(self.browse) + backends = defaultdict(set) for product in self: - backends[product.backend_id] |= product + backends[product.backend_id].add(product.id) - for backend, products in backends.iteritems(): - self._recompute_magento_qty_backend(backend, products) + for backend, product_ids in backends.iteritems(): + self._recompute_magento_qty_backend(backend, + self.browse(product_ids)) return True @api.multi From d8d4146fd3b99a905a5b902022e73fb2a003d040 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Tue, 15 Aug 2017 15:22:25 +0200 Subject: [PATCH 16/31] Apply fiscal position --- connector_magento/models/sale_order/importer.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/connector_magento/models/sale_order/importer.py b/connector_magento/models/sale_order/importer.py index bec1da8be..36ea79ee7 100644 --- a/connector_magento/models/sale_order/importer.py +++ b/connector_magento/models/sale_order/importer.py @@ -416,6 +416,12 @@ def _link_parent_orders(self, binding): parent_binding.write({'canceled_in_backend': True}) current_binding = parent_binding + def _create(self, data): + binding = super(SaleOrderImporter, self)._create(data) + if binding.fiscal_position_id: + binding.odoo_id._compute_tax_id() + return binding + def _after_import(self, binding): self._link_parent_orders(binding) From 9bf00df71fd80af90e80dc6b9234386aa8129ab0 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Fri, 18 Aug 2017 13:25:17 +0200 Subject: [PATCH 17/31] Remove related_action from import_batch --- connector_magento/models/magento_binding/common.py | 1 - 1 file changed, 1 deletion(-) diff --git a/connector_magento/models/magento_binding/common.py b/connector_magento/models/magento_binding/common.py index 81016165a..14789a5ed 100644 --- a/connector_magento/models/magento_binding/common.py +++ b/connector_magento/models/magento_binding/common.py @@ -33,7 +33,6 @@ class MagentoBinding(models.AbstractModel): ] @job(default_channel='root.magento') - @related_action(action='related_action_magento_link') @api.model def import_batch(self, backend, filters=None): """ Prepare the import of records modified on Magento """ From a0cb1338fa240a4acc922edc3896bf9b5e7b633e Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Mon, 21 Aug 2017 07:35:52 -0700 Subject: [PATCH 18/31] Allow service type product based on 'giftcard' type in Magento. --- connector_magento/components/__init__.py | 1 + connector_magento/components/line_builder.py | 41 +++++++++++++ .../data/connector_magento_data.xml | 18 ++++++ connector_magento/models/product/common.py | 1 + connector_magento/models/product/importer.py | 2 +- .../models/sale_order/importer.py | 57 ++++++++++++++++++- 6 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 connector_magento/components/line_builder.py diff --git a/connector_magento/components/__init__.py b/connector_magento/components/__init__.py index f036ef4ec..04c57ec7f 100644 --- a/connector_magento/components/__init__.py +++ b/connector_magento/components/__init__.py @@ -7,3 +7,4 @@ from . import exporter from . import mapper from . import deleter +from . import line_builder diff --git a/connector_magento/components/line_builder.py b/connector_magento/components/line_builder.py new file mode 100644 index 000000000..3c2963aeb --- /dev/null +++ b/connector_magento/components/line_builder.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# © 2017 Hibou Corp. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +""" + +Line Builders for Magento psudo-payment methods (Store Credit, Rewards...). + +""" + +from odoo.addons.component.core import Component + + +class StoreCreditLineBuilder(Component): + """ Return values for a Store Credit line """ + + _name = 'magento.order.line.builder.store_credit' + _inherit = 'ecommerce.order.line.builder' + _usage = 'order.line.builder.magento.store_credit' + + def __init__(self, work_context): + super(StoreCreditLineBuilder, self).__init__(work_context) + self.product_ref = ('connector_magento', + 'product_product_store_credit') + self.sign = -1 + self.sequence = 991 + + +class RewardsLineBuilder(Component): + """ Return values for a Rewards line """ + + _name = 'magento.order.line.builder.rewards' + _inherit = 'ecommerce.order.line.builder' + _usage = 'order.line.builder.magento.rewards' + + def __init__(self, work_context): + super(RewardsLineBuilder, self).__init__(work_context) + self.product_ref = ('connector_magento', + 'product_product_rewards') + self.sign = -1 + self.sequence = 992 diff --git a/connector_magento/data/connector_magento_data.xml b/connector_magento/data/connector_magento_data.xml index 65ae54d58..dc35b11b7 100644 --- a/connector_magento/data/connector_magento_data.xml +++ b/connector_magento/data/connector_magento_data.xml @@ -118,5 +118,23 @@ if sale.magento_bind_ids and abs(sale.amount_tax - sale.magento_bind_ids[0].tota + + MAGENTO STORE CREDIT + 0.0 + 0.0 + service + Magento Store Credit + + + + + MAGENTO REWARDS + 0.0 + 0.0 + service + Magento Rewards + + + diff --git a/connector_magento/models/product/common.py b/connector_magento/models/product/common.py index 9e0a92bc7..10da819f3 100644 --- a/connector_magento/models/product/common.py +++ b/connector_magento/models/product/common.py @@ -36,6 +36,7 @@ def product_type_get(self): ('configurable', 'Configurable Product'), ('virtual', 'Virtual Product'), ('downloadable', 'Downloadable Product'), + ('giftcard', 'Giftcard') # XXX activate when supported # ('grouped', 'Grouped Product'), # ('bundle', 'Bundle Product'), diff --git a/connector_magento/models/product/importer.py b/connector_magento/models/product/importer.py index 6cb46d348..937605337 100644 --- a/connector_magento/models/product/importer.py +++ b/connector_magento/models/product/importer.py @@ -196,7 +196,7 @@ def price(self, record): def type(self, record): if record['type_id'] == 'simple': return {'type': 'product'} - elif record['type_id'] in ('virtual', 'downloadable'): + elif record['type_id'] in ('virtual', 'downloadable', 'giftcard'): return {'type': 'service'} return diff --git a/connector_magento/models/sale_order/importer.py b/connector_magento/models/sale_order/importer.py index 36ea79ee7..0225a2b7e 100644 --- a/connector_magento/models/sale_order/importer.py +++ b/connector_magento/models/sale_order/importer.py @@ -4,6 +4,7 @@ import logging +from re import search as re_search from datetime import datetime, timedelta from odoo import _ @@ -177,12 +178,12 @@ def _add_cash_on_delivery_line(self, map_record, values): def _add_gift_certificate_line(self, map_record, values): record = map_record.source - if 'gift_cert_amount' not in record: - return values - # if gift_cert_amount is zero + # if gift_cert_amount is zero or doesn't exist if not record.get('gift_cert_amount'): return values amount = float(record['gift_cert_amount']) + if amount == 0.0: + return values line_builder = self.component(usage='order.line.builder.gift') line_builder.price_unit = amount if 'gift_cert_code' in record: @@ -191,11 +192,61 @@ def _add_gift_certificate_line(self, map_record, values): values['order_line'].append(line) return values + def _add_gift_cards_line(self, map_record, values): + record = map_record.source + # if gift_cards_amount is zero or doesn't exist + if not record.get('gift_cards_amount'): + return values + amount = float(record['gift_cards_amount']) + if amount == 0.0: + return values + line_builder = self.component(usage='order.line.builder.gift') + line_builder.price_unit = amount + if 'gift_cards' in record: + gift_code = '' + gift_cards_serialized = record.get('gift_cards') + codes = re_search(r's:1:"c";s:\d+:"(.*?)"', gift_cards_serialized) + if codes: + gift_code = ', '.join(codes.groups()) + line_builder.gift_code = gift_code + line = (0, 0, line_builder.get_line()) + values['order_line'].append(line) + return values + + def _add_store_credit_line(self, map_record, values): + record = map_record.source + if not record.get('customer_balance_amount'): + return values + amount = float(record['customer_balance_amount']) + if amount == 0.0: + return values + line_builder = self.component(usage='order.line.builder.magento.store_credit') + line_builder.price_unit = amount + line = (0, 0, line_builder.get_line()) + values['order_line'].append(line) + return values + + def _add_rewards_line(self, map_record, values): + record = map_record.source + if not record.get('reward_currency_amount'): + return values + amount = float(record['reward_currency_amount']) + if amount == 0.0: + return values + line_builder = self.component(usage='order.line.builder.magento.rewards') + line_builder.price_unit = amount + line = (0, 0, line_builder.get_line()) + values['order_line'].append(line) + return values + def finalize(self, map_record, values): values.setdefault('order_line', []) values = self._add_shipping_line(map_record, values) values = self._add_cash_on_delivery_line(map_record, values) values = self._add_gift_certificate_line(map_record, values) + values = self._add_gift_cards_line(map_record, values) + values = self._add_store_credit_line(map_record, values) + values = self._add_rewards_line(map_record, values) values.update({ 'partner_id': self.options.partner_id, 'partner_invoice_id': self.options.partner_invoice_id, From 4bcb63ca8cfe952de13a5bc4899ff991d90d2c54 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Thu, 21 Sep 2017 20:56:14 +0200 Subject: [PATCH 19/31] Change return value matching with the comment --- connector_magento/components/exporter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/connector_magento/components/exporter.py b/connector_magento/components/exporter.py index 95ec38320..a34549957 100644 --- a/connector_magento/components/exporter.py +++ b/connector_magento/components/exporter.py @@ -74,7 +74,7 @@ def _should_import(self): attributes=['updated_at']) if not record['updated_at']: # in rare case it can be empty, in doubt, import it - return False + return True sync_date = odoo.fields.Datetime.from_string(sync) magento_date = datetime.strptime(record['updated_at'], MAGENTO_DATETIME_FORMAT) From a77c2326ed1e274d1495b3e87c4ca439780f8e14 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Thu, 21 Sep 2017 21:11:25 +0200 Subject: [PATCH 20/31] Fix failing test * Rename it because it was shadowing another test * Compute in the location's context --- connector_magento/tests/test_export_product_stock.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/connector_magento/tests/test_export_product_stock.py b/connector_magento/tests/test_export_product_stock.py index 1a5fbfa6f..bca93fec8 100644 --- a/connector_magento/tests/test_export_product_stock.py +++ b/connector_magento/tests/test_export_product_stock.py @@ -182,7 +182,7 @@ def test_export_product_inventory_write_job(self): self.parse_cassette_request(cassette.requests[1].body) ) - def test_compute_new_qty(self): + def test_compute_new_qty_with_location(self): product = self.binding_product.odoo_id binding = self.binding_product # start with 0 @@ -190,6 +190,7 @@ def test_compute_new_qty(self): self.assertEqual(binding.magento_qty, 0.0) my_location_id = self.env.ref("stock.stock_location_components").id + binding = binding.with_context(location=my_location_id) # change to 30 self._product_change_qty(product, 30) From 95ed028b47856bd1c8cc2c30d636f619a95ab059 Mon Sep 17 00:00:00 2001 From: Jared Kipe Date: Mon, 23 Oct 2017 08:14:15 -0700 Subject: [PATCH 21/31] Listen for new `on_picking_dropship_done` event. --- connector_magento/models/stock_picking/common.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/connector_magento/models/stock_picking/common.py b/connector_magento/models/stock_picking/common.py index e662fa7b0..eb520c5c1 100644 --- a/connector_magento/models/stock_picking/common.py +++ b/connector_magento/models/stock_picking/common.py @@ -145,6 +145,9 @@ def on_tracking_number_added(self, record): # executed after the picking creation binding.with_delay(priority=20).export_tracking_number() + def on_picking_dropship_done(self, record, picking_method): + return self.on_picking_out_done(record, picking_method) + def on_picking_out_done(self, record, picking_method): """ Create a ``magento.stock.picking`` record. This record will then From 632f80497c6100d29b88771697e5e6d61af55835 Mon Sep 17 00:00:00 2001 From: "Laurent Mignon (ACSONE)" Date: Thu, 23 Nov 2017 11:34:10 +0100 Subject: [PATCH 22/31] Add new wizard to read data from magento The wizard is available on the backend. --- connector_magento/__init__.py | 1 + connector_magento/__manifest__.py | 1 + connector_magento/wizards/__init__.py | 1 + .../wizards/magento_binding_backend_read.py | 129 ++++++++++++++++++ .../wizards/magento_binding_backend_read.xml | 50 +++++++ 5 files changed, 182 insertions(+) create mode 100644 connector_magento/wizards/__init__.py create mode 100644 connector_magento/wizards/magento_binding_backend_read.py create mode 100644 connector_magento/wizards/magento_binding_backend_read.xml diff --git a/connector_magento/__init__.py b/connector_magento/__init__.py index edf5255a2..06312982e 100644 --- a/connector_magento/__init__.py +++ b/connector_magento/__init__.py @@ -5,3 +5,4 @@ from . import components from . import models +from . import wizards diff --git a/connector_magento/__manifest__.py b/connector_magento/__manifest__.py index 775a5eba0..2678f8584 100644 --- a/connector_magento/__manifest__.py +++ b/connector_magento/__manifest__.py @@ -38,6 +38,7 @@ 'views/delivery_views.xml', 'views/stock_views.xml', 'views/account_payment_mode_views.xml', + 'wizards/magento_binding_backend_read.xml', ], 'installable': True, 'application': False, diff --git a/connector_magento/wizards/__init__.py b/connector_magento/wizards/__init__.py new file mode 100644 index 000000000..93eb627ff --- /dev/null +++ b/connector_magento/wizards/__init__.py @@ -0,0 +1 @@ +from . import magento_binding_backend_read diff --git a/connector_magento/wizards/magento_binding_backend_read.py b/connector_magento/wizards/magento_binding_backend_read.py new file mode 100644 index 000000000..7d47d6d3f --- /dev/null +++ b/connector_magento/wizards/magento_binding_backend_read.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import base64 +import logging +import cStringIO +import contextlib +import json + +from odoo.exceptions import UserError + +from odoo import api, fields, models, tools, _ +from odoo.addons.component import core + +_logger = logging.getLogger(__name__) + + +class MagentoBindingBackendRead(models.TransientModel): + + _name = 'magento.binding.backend.read' + + @api.model + @tools.ormcache_context('self._uid', 'model_name', keys=('lang',)) + def _get_translated_model_name(self, model_name): + # get the translated model name to build + # a meaningful model description + search_result = self.env['ir.model'].name_search( + model_name, operator='=') + if search_result: + return search_result[0][1] + return self.env[model_name]._description + + @api.model + def _default_magento_backend_id(self): + active_model = self._context.get('active_model') + if active_model and active_model == self._name: + # method called when the result is displayed + return self.env['magento.backend'].browse([]) + if active_model and active_model != 'magento.backend': + raise UserError(_("The wizard must be launched from a magento " + "backend model")) + active_id = self._context.get('active_ids', []) + if len(active_id) > 1: + raise UserError(_("The wizard must be launched on a single " + "magento backend instance")) + active_id = (active_id and active_id[0]) or self._context.get( + 'active_id') + return self.env['magento.backend'].browse(active_id) + + @api.model + def _get_magento_binding_model(self): + """ + This method return a list of magento bindings for which a backend + adapter is registered + :return: + """ + try: + components_registry = core._component_databases[self.env.cr.dbname] + except KeyError: + _logger.info( + 'No component registry for database %s. ' + 'Probably because the Odoo registry has not been built ' + 'yet.', exc_info=1 + ) + return [] + component_classes = components_registry.lookup( + collection_name='magento.backend', + usage='backend.adapter', + ) + ret = [] + for component_class in component_classes: + ret.append( + (component_class._apply_on, + self._get_translated_model_name(component_class._apply_on)) + ) + return ret + + name = fields.Char( + 'File Name', + readonly=True + ) + data = fields.Binary( + 'File', + readonly=True + ) + state = fields.Selection( + [('choose', 'choose'), + ('get', 'get')], + default='choose' + ) + magento_backend_id = fields.Many2one( + 'magento.backend', + required=True, + readonly=True, + default=_default_magento_backend_id, + ) + magento_binding_model = fields.Selection( + '_get_magento_binding_model', + required=True + ) + magento_id = fields.Char( + 'Magento Id', + required=True + ) + + @api.multi + def action_get_info(self): + self.ensure_one() + + with self.magento_backend_id.work_on( + self.magento_binding_model) as work: + adapter = work.component(usage='backend.adapter') + data = adapter.read(self.magento_id) + with contextlib.closing(cStringIO.StringIO()) as buf: + json.dump(data, buf) + out = base64.encodestring(buf.getvalue()) + + name = 'sale_order_%s.json' % self.magento_id + self.write({'state': 'get', 'data': out, 'name': name}) + return { + 'type': 'ir.actions.act_window', + 'res_model': 'magento.binding.backend.read', + 'view_mode': 'form', + 'view_type': 'form', + 'res_id': self.id, + 'views': [(False, 'form')], + 'target': 'new', + } diff --git a/connector_magento/wizards/magento_binding_backend_read.xml b/connector_magento/wizards/magento_binding_backend_read.xml new file mode 100644 index 000000000..0621ac4ca --- /dev/null +++ b/connector_magento/wizards/magento_binding_backend_read.xml @@ -0,0 +1,50 @@ + + + + + + + magento.binding.backend.read.form (in connector_magento) + magento.binding.backend.read + +
                                                                                                                  + + + + + + + +
                                                                                                                  +

                                                                                                                  Here is the file with information read drom the backend:

                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + + + Read information from backend + ir.actions.act_window + magento.binding.backend.read + form + form + new + + + + Read information from backend + client_action_multi + + magento.backend + + + +
                                                                                                                  From 00d506cd5bbe5739902ed7d0cda52f66669f14f4 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Sat, 3 Mar 2018 04:06:17 +0100 Subject: [PATCH 23/31] OCA Transbot updated translations from Transifex --- connector_magento/i18n/connector_magento.pot | 4009 ++++++++++++-- connector_magento/i18n/de.po | 4859 ++++++++++++++--- connector_magento/i18n/es.po | 4745 ++++++++++++++--- connector_magento/i18n/fr.po | 4891 +++++++++++++++--- connector_magento/i18n/it.po | 4864 ++++++++++++++--- connector_magento/i18n/nl.po | 4779 ++++++++++++++--- connector_magento/i18n/pt_BR.po | 4433 +++++++++++++--- connector_magento/i18n/sl.po | 4355 +++++++++++++--- 8 files changed, 31366 insertions(+), 5569 deletions(-) diff --git a/connector_magento/i18n/connector_magento.pot b/connector_magento/i18n/connector_magento.pot index 8ed2a3bff..d55ee3d81 100644 --- a/connector_magento/i18n/connector_magento.pot +++ b/connector_magento/i18n/connector_magento.pot @@ -1,13 +1,11 @@ -# Translation of OpenERP Server. +# Translation of Odoo Server. # This file contains the translation of the following modules: # * connector_magento # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-06-10 14:00+0000\n" -"PO-Revision-Date: 2014-06-10 14:00+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -16,106 +14,300 @@ msgstr "" "Plural-Forms: \n" #. module: connector_magento -#: help:magento.sale.order,magento_order_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_state +msgid " * Draft: not confirmed yet and will not be scheduled until confirmed\n" +" * Waiting Another Operation: waiting for another move to proceed before it becomes automatically available (e.g. in Make-To-Order flows)\n" +" * Waiting Availability: still waiting for the availability of products\n" +" * Partially Available: some products are available and reserved\n" +" * Ready to Transfer: products reserved, simply waiting for confirmation.\n" +" * Transferred: has been processed, can't be modified or cancelled anymore\n" +" * Cancelled: has been cancelled, can't be confirmed anymore" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_state +msgid " * The 'Draft' status is used when a user is encoding a new and unconfirmed Invoice.\n" +" * The 'Pro-forma' status is used when the invoice does not have an invoice number.\n" +" * The 'Open' status is used when user creates invoice, an invoice number is generated. It stays in the open status till the user pays the invoice.\n" +" * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n" +" * The 'Cancelled' status is used when user cancel invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_count +msgid "# Product Variants" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_product_count +msgid "# Products" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sales_count +msgid "# Sales" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_count +msgid "# of Invoices" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_count +msgid "# of Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_magento_order_id msgid "'order_id' field in Magento" msgstr "" #. module: connector_magento -#: view:magento.product.product:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form msgid "(recompute)" msgstr "" +#. module: connector_magento +#: sql_constraint:magento.account.invoice:0 +msgid "A Magento binding for this invoice already exists." +msgstr "" + #. module: connector_magento #: sql_constraint:magento.backend:0 msgid "A backend with the same sale prefix already exists" msgstr "" #. module: connector_magento +#: sql_constraint:magento.account.invoice:0 #: sql_constraint:magento.address:0 -msgid "A partner address with same ID on Magento already exists." +#: sql_constraint:magento.binding:0 +#: sql_constraint:magento.product.category:0 +#: sql_constraint:magento.product.product:0 +#: sql_constraint:magento.res.partner:0 +#: sql_constraint:magento.res.partner.category:0 +#: sql_constraint:magento.sale.order:0 +#: sql_constraint:magento.sale.order.line:0 +#: sql_constraint:magento.stock.picking:0 +#: sql_constraint:magento.store:0 +#: sql_constraint:magento.storeview:0 +#: sql_constraint:magento.website:0 +msgid "A binding already exists with the same Magento ID." msgstr "" #. module: connector_magento -#: sql_constraint:magento.res.partner.category:0 -msgid "A partner tag with same ID on Magento already exists." +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_type +msgid "A category of the view type is a virtual category that can be used as the parent of another category to create a hierarchical structure." msgstr "" #. module: connector_magento -#: sql_constraint:magento.res.partner:0 -msgid "A partner with same ID on Magento already exists for this website." +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_sale +msgid "A description of the Product that you want to communicate to your customers. This description will be copied to every Sale Order, Delivery Order and Customer Invoice/Refund" msgstr "" #. module: connector_magento -#: help:magento.backend,sale_prefix:0 -msgid "A prefix put before the name of imported sales orders.\n" -"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, will be named 'mag-100000692' in OpenERP." +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_purchase +msgid "A description of the Product that you want to communicate to your vendors. This description will be copied to every Purchase Order, Receipt and Vendor Bill/Refund." msgstr "" #. module: connector_magento -#: sql_constraint:magento.product.category:0 -msgid "A product category with same ID on Magento already exists." +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "A parent sales order has been canceled on the backend and needs to be canceled." msgstr "" #. module: connector_magento -#: sql_constraint:magento.product.product:0 -msgid "A product with the same ID on Magento already exists" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_id +msgid "A parent sales order is a sales order replaced by this one." msgstr "" #. module: connector_magento -#: sql_constraint:magento.sale.order:0 -#: sql_constraint:magento.sale.order.line:0 -msgid "A sale order line with the same ID on Magento already exists." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "A parent sales order needs cancel" msgstr "" #. module: connector_magento -#: sql_constraint:magento.stock.picking:0 -msgid "A stock picking with same ID on Magento already exists." +#: sql_constraint:magento.address:0 +msgid "A partner address can only have one binding by backend." msgstr "" #. module: connector_magento -#: sql_constraint:magento.store:0 -msgid "A store with the same ID on Magento already exists." +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description +msgid "A precise description of the Product, used only for internal information purposes." msgstr "" #. module: connector_magento -#: sql_constraint:magento.storeview:0 -msgid "A storeview with same ID on Magento already exists." +#: model:ir.model.fields,help:connector_magento.field_magento_backend_sale_prefix +msgid "A prefix put before the name of imported sales orders.\n" +"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, will be named 'mag-100000692' in Odoo." msgstr "" #. module: connector_magento -#: sql_constraint:magento.website:0 -msgid "A website with the same ID on Magento already exists." +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_type +msgid "A stockable product is a product for which you manage stock. The \"Inventory\" app has to be installed.\n" +"A consumable product, on the other hand, is a product for which stock is not managed.\n" +"A service is a non-material product you provide.\n" +"A digital content is a non-material product you sell online. The files attached to the products are the one that are sold on the e-commerce such as e-books, music, pictures,... The \"Digital Product\" module has to be installed." msgstr "" #. module: connector_magento -#: view:magento.backend:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "API" msgstr "" #. module: connector_magento -#: field:magento.address,is_magento_order_address:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_account_id +msgid "Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "Account Payable" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "Account Receivable" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date +msgid "Accounting Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction +msgid "Action Needed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_bank_account_required +msgid "Activate this option if this payment method requires you to know the bank account number of your customer or supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_active +msgid "Active" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_comment +msgid "Additional Information" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_type +msgid "Address Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_magento_order_address msgid "Address from a Magento Order" msgstr "" #. module: connector_magento -#: field:magento.backend,admin_location:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_admin_location msgid "Admin Location" msgstr "" #. module: connector_magento -#: view:magento.backend:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Advanced Configuration" msgstr "" #. module: connector_magento -#: help:magento.res.partner,consider_as_company:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_all_qty_delivered +msgid "All quantities delivered" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "Allow moving packs" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:69 +#, python-format +msgid "Already exported" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/importer.py:368 +#, python-format +msgid "Already imported" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/importer.py:198 +#, python-format +msgid "Already up-to-date." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual +msgid "Amount Due" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Amount Due in Company Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_signed +msgid "Amount Due in Invoice Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_consider_as_company msgid "An account imported with a 'company' in the billing address is considered as a company.\n" " The partner takes the name of the company and is not merged with the billing address." msgstr "" #. module: connector_magento -#: sql_constraint:magento.account.invoice:0 -msgid "An invoice with the same ID on Magento already exists." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_related_project_id +msgid "Analytic Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_analytic_tag_ids +msgid "Analytic Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_account_analytic_id +msgid "Analytic account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_value_ids +msgid "Attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_workflow_process_id +msgid "Automatic Workflow" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backorder_id +msgid "Back Order of" msgstr "" #. module: connector_magento @@ -124,1028 +316,3821 @@ msgid "Backends" msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_password:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_account_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_account_count +msgid "Bank" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_bank_id +msgid "Bank Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_bank_id +msgid "Bank Account Number to which the invoice will be paid. A Company bank account if this is a Customer Invoice or Vendor Refund, otherwise a Partner bank account number." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_bank_account_required +msgid "Bank Account Required" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_ids +msgid "Banks" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_barcode +msgid "Barcode" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_list_price +msgid "Base price to compute the customer price. Sometimes called the catalog price." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_password msgid "Basic Auth. Password" msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_username:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_username msgid "Basic Auth. Username" msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_password:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_password msgid "Basic access authentication web server side password" msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_username:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_username msgid "Basic access authentication web server side username" msgstr "" #. module: connector_magento -#: field:res.partner,birthday:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image +msgid "Big-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_birthday +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_users_birthday msgid "Birthday" msgstr "" #. module: connector_magento -#: view:magento.backend:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_bounce +msgid "Bounce" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_bulk +msgid "Bulk Weight" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "By clicking on the buttons,\n" -" you will initiate the synchronizations\n" -" with Magento.\n" -" Note that the import or exports\n" -" won't be done directly,\n" -" they will create 'Jobs'\n" -" executed as soon as possible." +" you will initiate the synchronizations\n" +" with Magento.\n" +" Note that the import or exports\n" +" won't be done directly,\n" +" they will create 'Jobs'\n" +" executed as soon as possible." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered_updateable +msgid "Can Edit Delivered" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_purchase_ok +msgid "Can be Purchased" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_rental +msgid "Can be Rent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_ok +msgid "Can be Sold" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Cancel" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/common.py:114 +#, python-format +msgid "Cancel sales order %s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_canceled_in_backend +msgid "Canceled in backend" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:76 +#, python-format +msgid "Canceled: the delivery order does not contain lines from the original sale order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_cancellation_resolved +msgid "Cancellation from the backend resolved" msgstr "" #. module: connector_magento #: model:ir.model,name:connector_magento.model_delivery_carrier +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_id msgid "Carrier" msgstr "" #. module: connector_magento -#: help:magento.storeview,no_sales_order_sync:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_from_categ_ids +msgid "Category Routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_type +msgid "Category Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_channel_ids +msgid "Channels" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_is_company +msgid "Check if the contact is a company, otherwise it is a person" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_no_sales_order_sync msgid "Check if the storeview is active in Magento but its sales orders should not be imported." msgstr "" #. module: connector_magento -#: help:magento.product.product,no_stock_sync:0 +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Check the existance of quants linked to this picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Check the existence of pack operation on the picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer +msgid "Check this box if this contact is a customer." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier +msgid "Check this box if this contact is a vendor. If it's not checked, purchase people will not see it when encoding a purchase order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_employee +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_employee +msgid "Check this box if this contact is an Employee." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_no_stock_sync msgid "Check this to exclude the product from stock synchronizations." msgstr "" #. module: connector_magento -#: help:magento.backend,product_stock_field_id:0 +#: code:addons/connector_magento/models/magento_backend/common.py:234 +#, python-format +msgid "Check your configuration, we can't get the data. Here is the error:\n" +"%s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_child_id +msgid "Child Categories" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_child_ids +msgid "Child Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_product_stock_field_id msgid "Choose the field of the product which will be used for stock inventory updates.\n" "If empty, Quantity Available is used." msgstr "" #. module: connector_magento -#: field:magento.storeview,code:0 -#: field:magento.website,code:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_city +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_city +msgid "City" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Close" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_code msgid "Code" msgstr "" #. module: connector_magento -#: view:res.partner:0 -#: field:res.partner,company:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_color +msgid "Color Index" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_partner_id +msgid "Commercial Entity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref_company_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref_company_ids +msgid "Companies that refers to partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_company_id +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_res_users_company +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form msgid "Company" msgstr "" +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_currency_id +msgid "Company Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_name +msgid "Company Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_company_name +msgid "Company Name Entity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_type +msgid "Company Type" +msgstr "" + #. module: connector_magento #: selection:magento.stock.picking,picking_method:0 msgid "Complete" msgstr "" #. module: connector_magento -#: field:magento.product.product,magento_qty:0 -msgid "Computed Quantity" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contact_address +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contact_address +msgid "Complete Address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date_done +msgid "Completion Date of Transfer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_qty +msgid "Computed Quantity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_confirmation_date +msgid "Confirmation Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_consider_as_company +msgid "Considered as company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_child_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_child_ids +msgid "Contacts" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contracts_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contracts_count +msgid "Contracts" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_standard_price +msgid "Cost" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_cost_method +msgid "Cost method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_standard_price +msgid "Cost of the product template used for standard stock valuation in accounting and used as a base price on purchase orders. Expressed in the default unit of measure of the product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_cost_method +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_cost_method +msgid "Costing Method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_count +msgid "Count Payment Token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_bounce +msgid "Counter of the number of bounced emails for this contact" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_country_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_country_id +msgid "Country" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +msgid "Create invoice on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_payment_mode_create_invoice_on +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_invoice_on +msgid "Create invoice on action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_created_at +msgid "Created At (on Magento)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_uid +msgid "Created by" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_date +msgid "Created on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date +msgid "Creation Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date +msgid "Creation Date, usually the time of the order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit_limit +msgid "Credit Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_currency_id +msgid "Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_qty_available +msgid "Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\n" +"stored in the Stock Location of the Warehouse of this Shop, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_custom_api_path +msgid "Custom Api Path" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_id +msgid "Customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_delay +msgid "Customer Lead Time" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_customer +msgid "Customer Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Customer Payment Mode" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "Customer Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_partner_ref +msgid "Customer Ref" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_client_order_ref +msgid "Customer Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_taxes_id +msgid "Customer Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_date +msgid "Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date_done +msgid "Date of Transfer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_last_post +msgid "Date of the last message posted on the record." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_confirmation_date +msgid "Date on which the sale order is confirmed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_billing +msgid "Default Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_lang_id +msgid "Default Language" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_owner_id +msgid "Default Owner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_category_id +msgid "Default Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_shipping +msgid "Default Shipping" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_id +msgid "Default Unit of Measure used for all stock operation." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_po_id +msgid "Default Unit of Measure used for purchase orders. It must be in the same category than the default unit of measure." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_trust +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_trust +msgid "Degree of trust you have in this debtor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered +msgid "Delivered" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_delivery_count +msgid "Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_shipping_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery Address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_customer_lead +msgid "Delivery Lead Time" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_carrier_id +msgid "Delivery Method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_count +msgid "Delivery Orders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_type +msgid "Delivery Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_shipping_id +msgid "Delivery address for current invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_route_ids +msgid "Depending on the modules installed, this will allow you to define the route of the product: whether it will be bought, manufactured, MTO/MTS,..." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_name +msgid "Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_picking +msgid "Description on Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_dest_id +msgid "Destination Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_discount +msgid "Discount (%)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_display_name +msgid "Display Name" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Do Not Manage Stock" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "Does the invoice export/creation should send an email notification on Magento side?" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_picking_done_mail +msgid "Does the picking export/creation should send an email notification on Magento side?" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_due +msgid "Due Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_emailid +msgid "E-mail address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_partner_share +msgid "Either customer (no user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email +msgid "Email" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_notify_email +msgid "Email Messages and Notifications" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_employee +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_employee +msgid "Employee" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_enabled +msgid "Enabled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_price +msgid "Estimated Delivery Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_exception_ids +msgid "Exceptions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_expense_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_expense_id +msgid "Expense Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_validity_date +msgid "Expiration Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_export_tracking +msgid "Export tracking numbers" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_ids +msgid "Extra categories" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_fax +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_fax +msgid "Fax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_data +msgid "File" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_name +msgid "File Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_carrier_id +msgid "Fill this field if you plan to invoice the shipping based on picking." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_firstname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_firstname +msgid "First name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_fiscal_position_id +msgid "Fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_follower_ids +msgid "Followers" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_removal_strategy_id +msgid "Force Removal Strategy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_virtual_available +msgid "Forecast Quantity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_virtual_available +msgid "Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_email_formatted +msgid "Format email address \"Name \"" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email_formatted +msgid "Formatted Email" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Get" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_packaging_ids +msgid "Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sequence +msgid "Gives the sequence order when displaying a product list" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_guest_customer +msgid "Guest Customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_hs_code +msgid "HS Code" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "HTTP Authentication" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_has_checkpoint +msgid "Has Checkpoint" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Has Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_has_scrap_move +msgid "Has Scrap Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_need_cancel +msgid "Has been canceled on the backend, need to be canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_has_outstanding +msgid "Has outstanding" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Has quants already reserved" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "Has unreconciled entries" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Here is the file with information read drom the backend:" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id_5804 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_id +msgid "ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_external_id +msgid "ID on Magento" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_im_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_im_status +msgid "IM Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_category_id +msgid "If a default category is selected, products imported without a category will be linked to it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_lang_id +msgid "If a default language is selected, the records will be imported in the translation of this language.\n" +"Note that a similar configuration exists for each storeview." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "If checked, this shows the packs to be moved as a whole in the Operations tab all the time, even if there was no entire pack reserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_opt_out +msgid "If opt-out is checked, this contact has refused to receive emails for mass mailing and marketing campaign. Filter 'Available for Mass Mailing' allows users to filter the partners when performing mass mailing." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_valuation +msgid "If perpetual valuation is enabled for a product, the system will automatically create journal entries corresponding to stock moves, with product price as specified by the 'Costing Method'. The inventory variation account set on the product category will represent the current inventory value, and the stock input and stock output account will hold the counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_valuation +msgid "If perpetual valuation is enabled for a product, the system will automatically create journal entries corresponding to stock moves, with product price as specified by the 'Costing Method'The inventory variation account set on the product category will represent the current inventory value, and the stock input and stock output account will hold the counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_team_id +msgid "If set, sale team used notably for sales and assignations related to this partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_account_analytic_id +msgid "If specified, this analytic account will be used to fill the field on the sale order created by the connector. The value can also be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_account_analytic_id +msgid "If specified, this analytic account will be used to fill the field on the sale order created by the connector. The value can also be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "If specified, this fiscal position will be used to fill the field fiscal position on the sale order created by the connector.The value can also be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_warehouse_id +msgid "If specified, this warehouse will be used to load fill the field warehouse (and company) on the sale order created by the connector.The value can also be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_lang +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_lang +msgid "If the selected language is loaded in the system, all documents related to this contact will be printed in this language. If not, it will be English." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_website_is_multi_company +msgid "If this flag is set, it is possible to choose warehouse at each level. When import partner, ignore company_id if this flag is set." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_backorder_id +msgid "If this shipment was split, then this field links to the shipment which contains the already processed part." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_active +msgid "If unchecked, it will allow you to hide the product without removing it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_payment_term_id +msgid "If you use payment terms, the due date will be computed automatically at the generation of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_due +msgid "If you use payment terms, the due date will be computed automatically at the generation of accounting entries. The payment term may compute several due dates, for example 50% now and 50% in one month, but if you want to force a due date, make sure that the payment term is not set on the invoice. If you keep the payment term and the due date empty, it means direct payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_ignore_exception +msgid "Ignore Exceptions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image +msgid "Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image +msgid "Image of the product variant (Big-sized image of product template if false). It is automatically resized as a 1024x1024px image, with aspect ratio preserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_medium +msgid "Image of the product variant (Medium-sized image of product template if false)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_small +msgid "Image of the product variant (Small-sized image of product template if false)." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders since" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import all customer groups" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_categories_from_date +msgid "Import categories from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import in background" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import partners from all websites" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_import_partners_from_date +msgid "Import partners from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import partners since" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products categories since" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_products_from_date +msgid "Import products from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products since" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_import_orders_from_date +msgid "Import sale orders from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import sales orders from all store views" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Imports" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_income_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_income_id +msgid "Income Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_incoming_qty +msgid "Incoming" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_incoterms_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_incoterm +msgid "Incoterms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_incoterms_id +msgid "Incoterms are series of sales terms. They are used to divide transaction costs and responsibilities between buyer and seller and reflect state-of-the-art transportation practices." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Informations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_default_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref +msgid "Internal Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_barcode +msgid "International Article Number used for product identification." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_incoterm +msgid "International Commercial Terms are a series of predefined commercial terms used in international transactions." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_inventory +msgid "Inventory Location" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +msgid "Inventory Options" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_valuation +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_valuation +msgid "Inventory Valuation" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_invoice +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn +msgid "Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice Address" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/account_invoice/exporter.py:26 +#, python-format +msgid "Invoice Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_invoice +msgid "Invoice Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_invoice_line_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_lines +msgid "Invoice Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_shipping_on_delivery +msgid "Invoice Shipping on Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_status +msgid "Invoice Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_refund_invoice_id +msgid "Invoice for which this invoice is the refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_invoiced +msgid "Invoiced" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_ids +msgid "Invoices" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_invoice_policy +msgid "Invoicing Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_is_multi_company +msgid "Is Backend Multi-Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_is_company +msgid "Is a Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer +msgid "Is a Customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_is_delivery +msgid "Is a Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier +msgid "Is a Vendor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reconciled +msgid "It indicates that the invoice has been paid and the journal entry of the invoice has been reconciled with one or several journal entries of payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_sent +msgid "It indicates that the invoice has been sent." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_move_type +msgid "It specifies goods to be deliver partially or all at once" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_function +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_function +msgid "Job Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_journal_id +msgid "Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_id +msgid "Journal Entry" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_name +msgid "Journal Entry Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_journal_item_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_journal_item_count +msgid "Journal Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_invoice +msgid "Keep empty to use the current date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date +msgid "Keep empty to use the invoice date." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_lang_id +msgid "Language" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_last_post +msgid "Last Message Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_address___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_store___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_website___last_update +msgid "Last Modified on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_date +msgid "Last Updated on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_magento_qty +msgid "Last computed quantity to send on Magento." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lastname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lastname +msgid "Last name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "Last time the invoices & payments matching was performed for this partner. It is set either if there's not at least an unreconciled debit and an unreconciled credit or if you click the \"Done\" button." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "Latest Invoices & Payments Matching Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_launch_pack_operations +msgid "Launch Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_sequence +msgid "Layout Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_left +msgid "Left Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_left +msgid "Left parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_id +msgid "Link to the automatically generated Journal Items." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_location +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_location_id +msgid "Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_packaging_ids +msgid "Logistical Units" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.menu,name:connector_magento.menu_magento_root +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +#: model:ir.ui.view,arch_db:connector_magento.view_magento_delivery_carrier_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_category_form +msgid "Magento" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_address +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_tree +msgid "Magento Address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_address_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Magento Address Bindings" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_backend +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_backend_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_tree +msgid "Magento Backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_backend +msgid "Magento Backends" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_carrier_code +msgid "Magento Base Carrier Code" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding +msgid "Magento Binding (abstract)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_stock_picking_magento_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.product_normal_form_view +#: model:ir.ui.view,arch_db:connector_magento.view_invoice_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_sale_order_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_stock_picking_out_magento_form +msgid "Magento Bindings" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_code +msgid "Magento Carrier Code" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_child_ids +msgid "Magento Child Categories" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Magento Configuration" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_stock_picking +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_tree +msgid "Magento Delivery Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_group_id +msgid "Magento Group (Category)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_id +msgid "Magento Id" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_account_invoice +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_tree +msgid "Magento Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_id +msgid "Magento Order ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_line_ids +msgid "Magento Order Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_parent_id +msgid "Magento Parent Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_partner_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_tree +msgid "Magento Partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_product +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_tree +msgid "Magento Product" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_category +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_tree +msgid "Magento Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_type +msgid "Magento Product Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_binding_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_product_binding_ids +msgid "Magento Products" +msgstr "" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_rewards +#: model:product.template,name:connector_magento.product_product_rewards_product_template +msgid "Magento Rewards" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_order_id +msgid "Magento Sale Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order_line +msgid "Magento Sale Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_tree +msgid "Magento Sales Orders" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_tree +msgid "Magento Store" +msgstr "" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_store_credit +#: model:product.template,name:connector_magento.product_product_store_credit_product_template +msgid "Magento Store Credit" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_store +msgid "Magento Stores" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_storeview +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_storeview_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_tree +msgid "Magento Storeview" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview +msgid "Magento Storeviews" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_tracking_title +msgid "Magento Tracking Title" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_taxvat +msgid "Magento VAT" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_website_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_tree +msgid "Magento Website" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_website +msgid "Magento Websites" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_backend_id +msgid "Magento backend id" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_binding_model +msgid "Magento binding model" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:58 +#, python-format +msgid "Magento sales order is already in state %s" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Main Configuration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_main_exception_id +msgid "Main Exception" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backorders +msgid "Manage Inventory Backorders" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Manage Stock" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_manage_stock +msgid "Manage Stock Level" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_track_service +msgid "Manually set quantities on order: Invoice based on the manually entered quantity, without creating an analytic account.\n" +"Timesheets on contract: Invoice based on the tracked hours on the related timesheet.\n" +"Create a task and track hours: Create a task on the sale order validation and track the work hours." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_validity_date +msgid "Manually set the expiration date of your quotation (offer), or it will set the date automatically based on the template if online quotation is installed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_max_date +msgid "Max. Expected Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_medium +msgid "Medium-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_medium +msgid "Medium-sized image of this contact. It is automatically resized as a 128x128px image, with aspect ratio preserved. Use this field in form views or some kanban views." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn_msg +msgid "Message for Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn_msg +msgid "Message for Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn_msg +msgid "Message for Sales Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn_msg +msgid "Message for Stock Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_ids +msgid "Messages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_orderpoint_ids +msgid "Minimum Stock Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_mobile +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_mobile +msgid "Mobile" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_name +msgid "Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_need_cancel +msgid "Need to be canceled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_newsletter +msgid "Newsletter" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "No Sales Order Synchronization" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "No Sell" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_no_stock_sync +msgid "No Stock Synchronization" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/queue_job/common.py:27 +#, python-format +msgid "No admin URL configured on the backend or no admin path is defined for this record." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:63 +#, python-format +msgid "No tracking number to send." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_product_ids +msgid "Non pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_notes +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_note +msgid "Notes" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:363 +#: code:addons/connector_magento/components/exporter.py:368 +#, python-format +msgid "Nothing to export." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_number +msgid "Number" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_number_of_packages +msgid "Number of Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_line_customer_lead +msgid "Number of days between the order confirmation and the shipping of the products to the customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Once imported,\n" +" some types of records,\n" +" like the products or categories,\n" +" need a manual review.\n" +" You will find the list\n" +" of the new records to review\n" +" in the menu 'Connectors > Checkpoint'." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_opt_out +msgid "Opt-Out" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Options" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_date_order +msgid "Order Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_order_line +msgid "Order Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_name +msgid "Order Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_state +msgid "Order Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_invoice_policy +msgid "Ordered Quantity: Invoice based on the quantity the customer ordered.\n" +"Delivered Quantity: Invoiced based on the quantity the vendor delivered (time or deliveries)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_outgoing_qty +msgid "Outgoing" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_outstanding_credits_debits_widget +msgid "Outstanding credits debits widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_owner_id +msgid "Owner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_pack_ids +msgid "Pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_package_ids +msgid "Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_packaging +msgid "Packaging" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 +#: selection:magento.store,create_invoice_on:0 +msgid "Paid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reconciled +msgid "Paid/Reconciled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_id +msgid "Parent Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_parent_id +msgid "Parent Magento Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_id +msgid "Parent Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_name +msgid "Parent name" +msgstr "" + +#. module: connector_magento +#: selection:magento.stock.picking,picking_method:0 +msgid "Partial" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_partner_id +msgid "Partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_odoo_id +msgid "Partner Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner_category +msgid "Partner Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_partner_ids +msgid "Partners" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_password +msgid "Password" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit_limit +msgid "Payable Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_mode_id +msgid "Payment Mode" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_payment_mode +msgid "Payment Modes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_move_line_ids +msgid "Payment Move Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference_type +msgid "Payment Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_term_id +msgid "Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_ids +msgid "Payment Tokens" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_ids +msgid "Payments" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payments_widget +msgid "Payments widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_phone +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_phone +msgid "Phone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_method +msgid "Picking Method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_id +msgid "Picking Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_ids +msgid "Picking associated to this sale" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_notify_email +msgid "Policy to receive emails for new messages pushed to your personal Inbox:\n" +"- Never: no emails are sent\n" +"- All Messages: for every notification you receive in your Inbox" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price +msgid "Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce +msgid "Price Reduce" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxexcl +msgid "Price Reduce Tax excl" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxinc +msgid "Price Reduce Tax inc" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_item_ids +msgid "Pricelist Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_item_ids +msgid "Pricelist item ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_catalog_price_tax_included +msgid "Prices include tax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_id +msgid "Pricing/Primary Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_printed +msgid "Printed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_priority +msgid "Priority" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_priority +msgid "Priority for this picking. Setting manually a value here would set it as priority for all the moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_procurement_group_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_group_id +msgid "Procurement Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_procurement +msgid "Procurement Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_procurement_ids +msgid "Procurements" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_product +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_product_id +msgid "Product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_line_ids +msgid "Product Attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_category +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_odoo_id +msgid "Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_tmpl_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_tmpl_id +msgid "Product Template" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_type +msgid "Product Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_production +msgid "Production Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_ids +msgid "Products" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_delivery_type +msgid "Provider" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_purchase +msgid "Purchase Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_po_id +msgid "Purchase Unit of Measure" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_qty +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom_qty +msgid "Quantity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_qty_available +msgid "Quantity On Hand" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_incoming_qty +msgid "Quantity of products that are planned to arrive.\n" +"In a context with a single Stock Location, this includes goods arriving to this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_outgoing_qty +msgid "Quantity of products that are planned to leave.\n" +"In a context with a single Stock Location, this includes goods leaving this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods leaving any Stock Location with 'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_queue_job +msgid "Queue Job" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_expense_policy +msgid "Re-Invoice Expenses" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Read Binding information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.magento_binding_backend_read_act_window +msgid "Read information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reception_count +msgid "Receipt" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "Recompute pack operation?" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/deleter.py:21 +#, python-format +msgid "Record %s deleted on Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/importer.py:189 +#, python-format +msgid "Record does no longer exist in Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:370 +#, python-format +msgid "Record exported with ID %s on Magento." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_name +msgid "Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_origin +msgid "Reference of the document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_origin +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_origin +msgid "Reference of the document that produced this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_name +msgid "Reference/Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_id +msgid "Related Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_ids +msgid "Related Packing Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_related_backorder_ids +msgid "Related backorders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Remaining amount due in the currency of the company." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_signed +msgid "Remaining amount due in the currency of the invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual +msgid "Remaining amount due." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/common.py:137 +#, python-format +msgid "Reopen sales order %s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_nbr_reordering_rules +msgid "Reordering Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_max_qty +msgid "Reordering max qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_min_qty +msgid "Reordering min qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_right +msgid "Right Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_right +msgid "Right parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_route_id +msgid "Route" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_route_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_ids +msgid "Routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_rule_group +msgid "Rule group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_sale +msgid "Sale Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_sale_id +msgid "Sale Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_odoo_id +msgid "Sale Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_sale_prefix +msgid "Sale Prefix" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_list_price +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_lst_price +msgid "Sale Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "Sale Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_workflow_process_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_workflow_process_id +msgid "Sale Workflow Process" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:54 +#, python-format +msgid "Sale is not linked with a Magento sales order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn +msgid "Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order_line +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn +msgid "Sales Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_team_id +msgid "Sales Team" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_salesman_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_user_id +msgid "Salesperson" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_min_date +msgid "Scheduled Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_min_date +msgid "Scheduled time for the first part of the shipment to be processed. Setting manually a value here would set it as expected date for all the stock moves." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_max_date +msgid "Scheduled time for the last part of the shipment to be processed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_id +msgid "Section" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_categ_id +msgid "Select category for the current product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Select the default payment mode for this customer." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Select the default payment mode for this supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_line_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_sale_warn +msgid "Selecting the \"Warning\" option will notify user with the message, Selecting \"Blocking Message\" will throw an exception with the message and block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_self +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_self +msgid "Self" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0 and Use Customer Notification" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "Send email notification on invoice validated/paid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_picking_done_mail +msgid "Send email notification on picking done" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_sent +msgid "Sent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sequence +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_sequence +msgid "Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_removal_strategy_id +msgid "Set a specific removal strategy that will be used regardless of the source location for this product category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_partner_share +msgid "Share Partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_price +msgid "Shipping Cost" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:25 +#, python-format +msgid "Shipping Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_policy +msgid "Shipping Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_account_payment_mode_create_invoice_on +msgid "Should the invoice be created in Magento when it is validated or when it is paid in Odoo?\n" +"If nothing is set, the option falls back to the same option on the Magento store related to the sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_create_invoice_on +msgid "Should the invoice be created in Magento when it is validated or when it is paid in Odoo?\n" +"This only takes effect if the sales order's related payment method is not giving an option for this by itself. (See Payment Methods)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_type +msgid "Signup Token Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_valid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_valid +msgid "Signup Token is Valid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_url +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_url +msgid "Signup URL" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_expiration +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_expiration +msgid "Signup expiration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_token +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_token +msgid "Signup token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_small +msgid "Small-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_small +msgid "Small-sized image of this contact. It is automatically resized as a 64x64px image, with aspect ratio preserved. Use this field anywhere a small image is required." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_sort_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_sort_order +msgid "Sort Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_origin +msgid "Source Document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_id +msgid "Source Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_account_analytic_id +msgid "Specific analytic account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "Specific fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_warehouse_id +msgid "Specific warehouse" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_ok +msgid "Specify if the product can be selected in a sales order line." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_connector_config_settings -msgid "Connector Configuration" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_cost_method +msgid "Standard Price: The cost price is manually updated at the end of a specific period (usually once a year).\n" +" Average Price: The cost price is recomputed at each incoming shipment and used for the product valuation.\n" +" Real Price: The cost price displayed is the price of the last outgoing product (will be use in case of inventory loss for example)." msgstr "" #. module: connector_magento -#: field:magento.res.partner,consider_as_company:0 -msgid "Considered as company" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_cost_method +msgid "Standard Price: The cost price is manually updated at the end of a specific period (usually once a year).\n" +"Average Price: The cost price is recomputed at each incoming shipment and used for the product valuation.\n" +"Real Price: The cost price displayed is the price of the last outgoing product (will be used in case of inventory loss for example)." msgstr "" #. module: connector_magento -#: view:payment.method:0 -msgid "Create invoice on" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_hs_code +msgid "Standardized code for international shipping and goods declaration" msgstr "" #. module: connector_magento -#: field:magento.store,create_invoice_on:0 -#: field:payment.method,create_invoice_on:0 -msgid "Create invoice on action" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_state_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_state_id +msgid "State" msgstr "" #. module: connector_magento -#: field:magento.address,created_at:0 -#: field:magento.product.product,created_at:0 -#: field:magento.res.partner,created_at:0 -msgid "Created At (on Magento)" +#: code:addons/connector_magento/models/sale_order/exporter.py:51 +#, python-format +msgid "State %s is not exported." msgstr "" #. module: connector_magento -#: field:magento.backend,use_custom_api_path:0 -msgid "Custom Api Path" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_state +msgid "Status" msgstr "" #. module: connector_magento -#: field:magento.address,is_default_billing:0 -msgid "Default Invoice" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_stock_field_id +msgid "Stock Field" msgstr "" #. module: connector_magento -#: field:magento.backend,default_lang_id:0 -msgid "Default Language" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_input +msgid "Stock Input Account" msgstr "" #. module: connector_magento -#: field:magento.backend,default_category_id:0 -msgid "Default Product Category" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_journal +msgid "Stock Journal" msgstr "" #. module: connector_magento -#: field:magento.address,is_default_shipping:0 -msgid "Default Shipping" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_lines +msgid "Stock Moves" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_stock_picking -msgid "Delivery Orders" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_output +msgid "Stock Output Account" msgstr "" #. module: connector_magento -#: field:magento.product.category,description:0 -msgid "Description" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_odoo_id +msgid "Stock Picking" msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Do Not Manage Stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "Stock Valuation Account" msgstr "" #. module: connector_magento -#: help:magento.store,send_invoice_paid_mail:0 -msgid "Does the invoice export/creation should send an email notification on Magento side?" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_move_ids +msgid "Stock move ids" msgstr "" #. module: connector_magento -#: help:magento.store,send_picking_done_mail:0 -msgid "Does the picking export/creation should send an email notification on Magento side?" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_quant_ids +msgid "Stock quant ids" msgstr "" #. module: connector_magento -#: field:magento.res.partner,emailid:0 -msgid "E-mail address" +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_store_id +msgid "Store" msgstr "" #. module: connector_magento -#: field:magento.storeview,enabled:0 -msgid "Enabled" +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_store_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Stores" msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_export_partner:0 -msgid "Export Partners to Magento (experimental)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_store_id +msgid "Storeview" msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_export_tracking:0 -msgid "Export tracking numbers" +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_storeview_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +msgid "Storeviews" msgstr "" #. module: connector_magento -#: view:connector.config.settings:0 -msgid "Extensions" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street +msgid "Street" msgstr "" #. module: connector_magento -#: field:magento.res.partner,guest_customer:0 -msgid "Guest Customer" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street2 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street2 +msgid "Street2" msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "HTTP Authentication" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_subtotal +msgid "Subtotal" msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_catalog:0 -msgid "Handle the product's catalog (not implemented)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Supplier Payment Mode" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,magento_id:0 -#: field:magento.address,magento_id:0 -#: field:magento.binding,magento_id:0 -#: field:magento.product.category,magento_id:0 -#: field:magento.product.product,magento_id:0 -#: field:magento.res.partner,magento_id:0 -#: field:magento.res.partner.category,magento_id:0 -#: field:magento.sale.order,magento_id:0 -#: field:magento.sale.order.line,magento_id:0 -#: field:magento.stock.picking,magento_id:0 -#: field:magento.store,magento_id:0 -#: field:magento.storeview,magento_id:0 -#: field:magento.website,magento_id:0 -msgid "ID on Magento" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Synchronize Metadata" msgstr "" #. module: connector_magento -#: help:magento.backend,default_category_id:0 -msgid "If a default category is selected, products imported without a category will be linked to it." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_vat +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_vat +msgid "TIN" msgstr "" #. module: connector_magento -#: help:magento.backend,default_lang_id:0 -msgid "If a default language is selected, the records will be imported in the translation of this language.\n" -"Note that a similar configuration exists for each storeview." +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_name +msgid "Tag Name" msgstr "" #. module: connector_magento -#: view:magento.storeview:0 -msgid "Import Sale Orders" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id +msgid "Tags" msgstr "" #. module: connector_magento -#: view:magento.storeview:0 -msgid "Import Sale Orders since" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_tax +msgid "Tax" msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Import all customer groups" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_tax_class_id +msgid "Tax Class ID" msgstr "" #. module: connector_magento -#: field:magento.backend,import_categories_from_date:0 -msgid "Import categories from date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax Group" msgstr "" #. module: connector_magento -#: view:magento.backend:0 -#: view:magento.website:0 -msgid "Import in background" +#: model:ir.model.fields,help:connector_magento.field_magento_address_vat +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_vat +msgid "Tax Identification Number. Fill it if the company is subjected to taxes. Used by the some of the legal statements." msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Import partners from all websites" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_tax_line_ids +msgid "Tax Lines" msgstr "" #. module: connector_magento -#: field:magento.website,import_partners_from_date:0 -msgid "Import partners from date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_rate +msgid "Tax Rate" msgstr "" #. module: connector_magento -#: view:magento.website:0 -msgid "Import partners since" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax groups are used with some external system like Prestashop" msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Import products categories since" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_id +msgid "Taxes" msgstr "" #. module: connector_magento -#: field:magento.backend,import_products_from_date:0 -msgid "Import products from date" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_name +msgid "Technical field holding the number given to the invoice, automatically set when the invoice is validated then stored to set the same number again if the invoice is cancelled, set to draft and re-validated." msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Import products since" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_pricelist_id +msgid "Technical field. Used for searching on pricelists, not stored in database." msgstr "" #. module: connector_magento -#: field:magento.storeview,import_orders_from_date:0 -msgid "Import sale orders from date" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_move_ids +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_quant_ids +msgid "Technical: used to compute quantities." msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Import sales orders from all store views" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_note +msgid "Terms and conditions" msgstr "" #. module: connector_magento -#: view:magento.backend:0 -#: view:magento.storeview:0 -#: view:magento.website:0 -msgid "Imports" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_category_active +msgid "The active field allows you to hide the category without removing it." msgstr "" #. module: connector_magento -#: view:magento.store:0 -#: view:magento.storeview:0 -#: view:magento.website:0 -msgid "Informations" +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount +msgid "The amount computed in Odoo doesn't match with the amount in Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if necessary." msgstr "" #. module: connector_magento -#: view:magento.product.product:0 -msgid "Inventory Options" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_related_project_id +msgid "The analytic account related to a sales order." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_account_invoice -#: field:magento.account.invoice,openerp_id:0 -msgid "Invoice" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_delay +msgid "The average delay in days between the confirmation of the customer order and the delivery of the finished products. It's the time you promise to your customers." msgstr "" #. module: connector_magento -#: field:magento.storeview,lang_id:0 -msgid "Language" +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:60 +#, python-format +msgid "The carrier %s does not export tracking numbers." msgstr "" #. module: connector_magento -#: help:magento.product.product,magento_qty:0 -msgid "Last computed quantity to send on Magento." +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_commercial_partner_id +msgid "The commercial entity that will be used on Journal Entries for this invoice" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,sync_date:0 -#: field:magento.address,sync_date:0 -#: field:magento.binding,sync_date:0 -#: field:magento.product.category,sync_date:0 -#: field:magento.product.product,sync_date:0 -#: field:magento.res.partner,sync_date:0 -#: field:magento.res.partner.category,sync_date:0 -#: field:magento.sale.order,sync_date:0 -#: field:magento.sale.order.line,sync_date:0 -#: field:magento.stock.picking,sync_date:0 -#: field:magento.store,sync_date:0 -#: field:magento.storeview,sync_date:0 -#: field:magento.website,sync_date:0 -msgid "Last synchronization date" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_company_id +msgid "The company is automatically set from your user preferences." msgstr "" #. module: connector_magento -#: field:magento.backend,location:0 -msgid "Location" +#: code:addons/connector_magento/models/product/importer.py:296 +#, python-format +msgid "The configurable product is not imported in Odoo, because only the simple products are used in the sales orders." msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_root -#: view:payment.method:0 -#: view:res.partner.category:0 -msgid "Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_custom_api_path +msgid "The default API path is '/index.php/api/xmlrpc'. Check this box if you use a custom API path, in that case, the location has to be completed with the custom API path " msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_address -#: view:magento.address:0 -msgid "Magento Address" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_position_id +msgid "The fiscal position will determine taxes and accounts used for the partner." msgstr "" #. module: connector_magento -#: view:res.partner:0 -#: field:res.partner,magento_address_bind_ids:0 -msgid "Magento Address Bindings" +#: model:ir.model.fields,help:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_user_id +msgid "The internal user that is in charge of communicating with this contact if any." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_backend -#: field:magento.account.invoice,backend_id:0 -#: field:magento.address,backend_id:0 -#: view:magento.backend:0 -#: field:magento.binding,backend_id:0 -#: field:magento.product.category,backend_id:0 -#: field:magento.product.product,backend_id:0 -#: field:magento.res.partner,backend_id:0 -#: field:magento.res.partner.category,backend_id:0 -#: field:magento.sale.order,backend_id:0 -#: field:magento.sale.order.line,backend_id:0 -#: field:magento.stock.picking,backend_id:0 -#: field:magento.store,backend_id:0 -#: field:magento.storeview,backend_id:0 -#: field:magento.website,backend_id:0 -msgid "Magento Backend" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_name +msgid "The name that will be used on account move lines" msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_backend -msgid "Magento Backends" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_product_count +msgid "The number of products under this category (Does not consider the children categories)" msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_carrier_code:0 -msgid "Magento Base Carrier Code" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_account_id +msgid "The partner account used for this invoice." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_binding -#: model:ir.model,name:connector_magento.model_magento_res_partner_category -msgid "Magento Binding (abstract)" +#: model:ir.model.fields,help:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "The partner has at least one unreconciled debit and credit since last time the invoices & payments matching was performed." msgstr "" #. module: connector_magento -#: view:account.invoice:0 -#: field:account.invoice,magento_bind_ids:0 -#: view:product.category:0 -#: field:product.category,magento_bind_ids:0 -#: view:product.product:0 -#: field:product.product,magento_bind_ids:0 -#: view:res.partner:0 -#: field:res.partner,magento_bind_ids:0 -#: field:res.partner.category,magento_bind_ids:0 -#: field:sale.order,magento_bind_ids:0 -#: field:sale.order.line,magento_bind_ids:0 -#: field:sale.shop,magento_bind_ids:0 -#: field:stock.picking,magento_bind_ids:0 -#: view:stock.picking:0 -#: field:stock.picking,magento_bind_ids:0 -msgid "Magento Bindings" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reference +msgid "The partner reference of this invoice." msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_code:0 -msgid "Magento Carrier Code" +#: model:ir.model.fields,help:connector_magento.field_magento_address_tz +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_tz +msgid "The partner's timezone, used to output proper date and time values inside printed reports. It is important to set a value for this field. You should use the same timezone that is otherwise used to pick and render date and time values: your computer's timezone." msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_child_ids:0 -msgid "Magento Child Categories" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_lst_price +msgid "The sale price is managed from the product template. Click on the 'Variant Prices' button to set the extra attribute prices." msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Magento Configuration" +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount_tax +msgid "The tax amount computed in Odoo doesn't match with the tax amount in Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if necessary." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_stock_picking -#: view:magento.stock.picking:0 -msgid "Magento Delivery Order" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_volume +msgid "The volume in m3." msgstr "" #. module: connector_magento -#: field:magento.res.partner,group_id:0 -msgid "Magento Group (Category)" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_weight +msgid "The weight of the contents in Kg, not including any packaging, etc." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_account_invoice -#: view:magento.account.invoice:0 -msgid "Magento Invoice" +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:41 +#, python-format +msgid "The wizard must be launched from a magento backend model" msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_order_id:0 -msgid "Magento Order ID" +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:45 +#, python-format +msgid "The wizard must be launched on a single magento backend instance" msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_order_line_ids:0 -msgid "Magento Order Lines" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_expense_id +msgid "This account will be used for invoices instead of the default one to value expenses for the current product." msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_parent_id:0 -msgid "Magento Parent Category" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_income_id +msgid "This account will be used for invoices instead of the default one to value sales for the current product." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_res_partner -#: field:magento.address,magento_partner_id:0 -#: view:magento.res.partner:0 -msgid "Magento Partner" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_expense_categ_id +msgid "This account will be used for invoices to value expenses." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_product -#: view:magento.product.product:0 -msgid "Magento Product" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_income_categ_id +msgid "This account will be used for invoices to value sales." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_category -#: view:magento.product.category:0 -msgid "Magento Product Category" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "This account will be used instead of the default one as the payable account for the current partner" msgstr "" #. module: connector_magento -#: field:magento.product.product,product_type:0 -msgid "Magento Product Type" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "This account will be used instead of the default one as the receivable account for the current partner" msgstr "" #. module: connector_magento -#: field:magento.backend,product_binding_ids:0 -#: field:magento.website,product_binding_ids:0 -msgid "Magento Products" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_delivery_carrier_id +msgid "This delivery method will be used when invoicing from picking." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order -#: field:magento.account.invoice,magento_order_id:0 -#: field:magento.sale.order.line,magento_order_id:0 -#: field:magento.stock.picking,magento_order_id:0 -msgid "Magento Sale Order" +#: model:ir.model.fields,help:connector_magento.field_magento_address_image +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image +msgid "This field holds the image used as avatar for this contact, limited to 1024x1024px" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order_line -msgid "Magento Sale Order Line" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_variant +msgid "This field holds the image used as image for the product variant, limited to 1024x1024px." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_store -#: view:magento.store:0 -msgid "Magento Store" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_price_extra +msgid "This is the sum of the extra price of all attributes" msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_store -msgid "Magento Stores" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "This option should respect the same\n" +" configuration as Magento. Pay\n" +" attention to the taxes on the products,\n" +" which should surely include prices when\n" +" this option is activated." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_storeview -#: field:magento.sale.order,storeview_id:0 -#: view:magento.storeview:0 -msgid "Magento Storeview" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "This payment term will be used instead of the default one for purchase orders and vendor bills" msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview -msgid "Magento Storeviews" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "This payment term will be used instead of the default one for sale orders and customer invoices" msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_tracking_title:0 -msgid "Magento Tracking Title" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "This pricelist will be used, instead of the default one, for sales to the current partner" msgstr "" #. module: connector_magento -#: field:magento.res.partner,taxvat:0 -msgid "Magento VAT" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_customer +msgid "This stock location will be used, instead of the default one, as the destination location for goods you send to this partner" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_website -#: field:magento.address,website_id:0 -#: field:magento.res.partner,website_id:0 -#: field:magento.store,website_id:0 -#: view:magento.website:0 -msgid "Magento Website" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "This stock location will be used, instead of the default one, as the source location for goods you receive from the current partner" msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_website -msgid "Magento Websites" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_production +msgid "This stock location will be used, instead of the default one, as the source location for stock moves generated by manufacturing orders." msgstr "" #. module: connector_magento -#: view:connector.config.settings:0 -msgid "Magentoerpconnect" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_procurement +msgid "This stock location will be used, instead of the default one, as the source location for stock moves generated by procurements." msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Main Configuration" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_inventory +msgid "This stock location will be used, instead of the default one, as the source location for stock moves generated when you do an inventory." msgstr "" #. module: connector_magento -#: field:magento.product.product,backorders:0 -msgid "Manage Inventory Backorders" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz +msgid "Timezone" msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Manage Stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz_offset +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz_offset +msgid "Timezone offset" msgstr "" #. module: connector_magento -#: field:magento.product.product,manage_stock:0 -msgid "Manage Stock Level" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_title +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_title +msgid "Title" msgstr "" #. module: connector_magento -#: field:magento.backend,name:0 -#: field:magento.storeview,name:0 -#: field:magento.website,name:0 -msgid "Name" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_to_invoice +msgid "To Invoice" msgstr "" #. module: connector_magento -#: field:magento.res.partner,newsletter:0 -msgid "Newsletter" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_total +msgid "Total" msgstr "" #. module: connector_magento -#: field:magento.storeview,no_sales_order_sync:0 -msgid "No Sales Order Synchronization" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount +msgid "Total Amount differs from Magento" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "No Sell" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_total_invoiced +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_total_invoiced +msgid "Total Invoiced" msgstr "" #. module: connector_magento -#: field:magento.product.product,no_stock_sync:0 -msgid "No Stock Synchronization" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit +msgid "Total Payable" msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,notes:0 -msgid "Notes" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit +msgid "Total Receivable" msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Once imported,\n" -" some types of records,\n" -" like the products or categories,\n" -" need a manual review.\n" -" You will find the list\n" -" of the new records to review\n" -" in the menu 'Connectors > Checkpoint'." +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount_tax +msgid "Total Tax Amount differs from Magento" msgstr "" #. module: connector_magento -#: view:magento.store:0 -#: view:magento.storeview:0 -#: view:magento.website:0 -msgid "Options" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount +msgid "Total amount" msgstr "" #. module: connector_magento -#: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 -msgid "Paid" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total amount in the currency of the company, negative for credit notes." msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_parent_id:0 -msgid "Parent Magento Order" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total amount in the currency of the invoice, negative for credit notes." msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Partial" +#: model:ir.model.fields,help:connector_magento.field_magento_address_credit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_credit +msgid "Total amount this customer owes you." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner -#: field:magento.address,openerp_id:0 -#: field:magento.res.partner,openerp_id:0 -msgid "Partner" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount_tax +msgid "Total amount w. tax" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner_category -msgid "Partner Categories" +#: model:ir.model.fields,help:connector_magento.field_magento_address_debit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_debit +msgid "Total amount you have to pay to this vendor." msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,openerp_id:0 -msgid "Partner Category" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total in Company Currency" msgstr "" #. module: connector_magento -#: field:magento.backend,password:0 -msgid "Password" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total in Invoice Currency" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_payment_method -msgid "Payment Method" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_total_route_ids +msgid "Total routes" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_stock_picking -msgid "Picking List" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_track_service +msgid "Track Service" msgstr "" #. module: connector_magento -#: field:magento.stock.picking,picking_method:0 -msgid "Picking Method" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tracking +msgid "Tracking" msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_pricing:0 -msgid "Prices are managed in OpenERP with pricelists" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_tracking_ref +msgid "Tracking Reference" msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_pricing:0 -msgid "Prices are set in OpenERP and exported to Magento.\n" -"\n" -"This installs the module connector_magento_pricing." +#: model:ir.model,name:connector_magento.model_stock_picking +msgid "Transfer" msgstr "" #. module: connector_magento -#: field:magento.backend,catalog_price_tax_included:0 -msgid "Prices include tax" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "True if reserved quants changed, which mean we might need to recompute the package operations" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_product -#: field:magento.product.product,openerp_id:0 -msgid "Product" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_type +msgid "Type" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_category -#: field:magento.product.category,openerp_id:0 -msgid "Product Category" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_code +msgid "Type of Operation" msgstr "" #. module: connector_magento -#: field:magento.sale.order,openerp_id:0 -msgid "Sale Order" +#: code:addons/connector_magento/models/magento_website/importer.py:22 +#, python-format +msgid "Undefined" msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,openerp_id:0 -msgid "Sale Order Line" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_unit +msgid "Unit Price" msgstr "" #. module: connector_magento -#: field:magento.backend,sale_prefix:0 -msgid "Sale Prefix" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of Measure" msgstr "" #. module: connector_magento -#: field:magento.store,openerp_id:0 -msgid "Sale Shop" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of measurement for Weight" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order -msgid "Sales Order" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread +msgid "Unread Messages" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order_line -msgid "Sales Order Line" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Unread Messages Counter" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_shop -msgid "Sales Shop" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_untaxed +msgid "Untaxed Amount" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed_signed +msgid "Untaxed Amount in Company Currency" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0 and Use Customer Notification" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Update" msgstr "" #. module: connector_magento -#: field:magento.store,send_invoice_paid_mail:0 -msgid "Send email notification on invoice validated/paid" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Update all the products stock quantities" msgstr "" #. module: connector_magento -#: field:magento.store,send_picking_done_mail:0 -msgid "Send email notification on picking done" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_updated_at +msgid "Updated At (on Magento)" msgstr "" #. module: connector_magento -#: help:payment.method,create_invoice_on:0 -msgid "Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"If nothing is set, the option falls back to the same option on the Magento store related to the sales order." +#: model:ir.model.fields,help:connector_magento.field_magento_backend_location +msgid "Url to magento application" msgstr "" #. module: connector_magento -#: help:magento.store,create_invoice_on:0 -msgid "Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"This only takes effect if the sales order's related payment method is not giving an option for this by itself. (See Payment Methods)" +#: selection:magento.product.product,backorders:0 +#: selection:magento.product.product,manage_stock:0 +msgid "Use Default Config" msgstr "" #. module: connector_magento -#: field:magento.storeview,sort_order:0 -#: field:magento.website,sort_order:0 -msgid "Sort Order" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_auth_basic +msgid "Use HTTP Auth Basic" msgstr "" #. module: connector_magento -#: field:magento.backend,product_stock_field_id:0 -msgid "Stock Field" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_auth_basic +msgid "Use a Basic Access Authentication for the API. The Magento server could be configured to restrict access using a HTTP authentication based on a username and a password." msgstr "" #. module: connector_magento -#: field:magento.stock.picking,openerp_id:0 -msgid "Stock Picking" +#: model:ir.model.fields,help:connector_magento.field_magento_address_type +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_type +msgid "Used to select automatically the right address according to the context in sales and purchases documents." msgstr "" #. module: connector_magento -#: field:magento.storeview,store_id:0 -msgid "Store" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_username +msgid "Username" msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_store -#: view:magento.website:0 -#: field:magento.website,store_ids:0 -msgid "Stores" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_ids +msgid "Users" msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview -#: view:magento.store:0 -#: field:magento.store,storeview_ids:0 -msgid "Storeviews" +#: model:ir.model.fields,help:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_currency_id +msgid "Utility field to express amount currency" msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Synchronize Metadata" +#: selection:account.payment.mode,create_invoice_on:0 +#: selection:magento.store,create_invoice_on:0 +msgid "Validate" msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,tax_class_id:0 -msgid "Tax Class ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_valuation +msgid "Valuation" msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,tax_rate:0 -msgid "Tax Rate" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_variant +msgid "Variant Image" msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount -msgid "The amount computed in OpenERP doesn't match with the amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price_extra +msgid "Variant Price Extra" msgstr "" #. module: connector_magento -#: help:magento.backend,use_custom_api_path:0 -msgid "The default API path is '/index.php/api/xmlrpc'. Check this box if you use a custom API path, in that case, the location has to be completed with the custom API path " +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "Vendor Location" msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount_tax -msgid "The tax amount computed in OpenERP doesn't match with the tax amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "Vendor Payment Terms" msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_catalog:0 -msgid "This installs the module connector_magento_catalog." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference +msgid "Vendor Reference" msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_export_partner:0 -msgid "This installs the module connector_magento_export_partner." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_supplier_taxes_id +msgid "Vendor Taxes" msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "This option should respect the same\n" -" configuration than Magento. Pay\n" -" attention to the taxes on the products,\n" -" which should surely include prices when\n" -" this option is activated." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_seller_ids +msgid "Vendors" msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount -msgid "Total Amount differs from Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_version +msgid "Version" msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount_tax -msgid "Total Tax Amount differs from Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_volume +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_volume +msgid "Volume" msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount:0 -msgid "Total amount" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_warehouse_id +msgid "Warehouse" msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount_tax:0 -msgid "Total amount w. tax" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_warehouse_id +msgid "Warehouse used to compute the stock quantities." msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Update" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warranty +msgid "Warranty" msgstr "" #. module: connector_magento -#: view:magento.backend:0 -msgid "Update all the products stock quantities" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_password +msgid "Webservice password" msgstr "" #. module: connector_magento -#: field:magento.address,updated_at:0 -#: field:magento.product.product,updated_at:0 -#: field:magento.res.partner,updated_at:0 -msgid "Updated At (on Magento)" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_username +msgid "Webservice user" msgstr "" #. module: connector_magento -#: help:magento.backend,location:0 -msgid "Url to magento application" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_website_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website +msgid "Website" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -#: selection:magento.product.product,manage_stock:0 -msgid "Use Default Config" +#: model:ir.model.fields,help:connector_magento.field_magento_address_website +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_website +msgid "Website of Partner or Company" msgstr "" #. module: connector_magento -#: field:magento.backend,use_auth_basic:0 -msgid "Use HTTP Auth Basic" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_website_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_website +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Websites" msgstr "" #. module: connector_magento -#: help:magento.backend,use_auth_basic:0 -msgid "Use a Basic Access Authentication for the API. The Magento server could be configured to restrict access using a HTTP authentication based on a username and a password." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_weight +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight +msgid "Weight" msgstr "" #. module: connector_magento -#: field:magento.backend,username:0 -msgid "Username" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_shipping_weight +msgid "Weight for Shipping" msgstr "" #. module: connector_magento -#: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 -msgid "Validate" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +msgid "When doing real-time inventory valuation, counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account set on the source location. This is the default value for all products in this category. It can also directly be set on each product" msgstr "" #. module: connector_magento -#: field:magento.backend,version:0 -msgid "Version" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_input +msgid "When doing real-time inventory valuation, counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account set on the source location. When not set on the product, the one from the product category is used." msgstr "" #. module: connector_magento -#: field:magento.backend,warehouse_id:0 -msgid "Warehouse" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +msgid "When doing real-time inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account, unless there is a specific valuation account set on the destination location. This is the default value for all products in this category. It can also directly be set on each product" msgstr "" #. module: connector_magento -#: help:magento.backend,warehouse_id:0 -msgid "Warehouse used to compute the stock quantities." +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_output +msgid "When doing real-time inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account, unless there is a specific valuation account set on the destination location. When not set on the product, the one from the product category is used." msgstr "" #. module: connector_magento -#: help:magento.backend,password:0 -msgid "Webservice password" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_journal +msgid "When doing real-time inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed." msgstr "" #. module: connector_magento -#: help:magento.backend,username:0 -msgid "Webservice user" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "When real-time inventory valuation is enabled on a product, this account will hold the current value of the products." msgstr "" #. module: connector_magento -#: field:magento.backend,website_ids:0 -msgid "Website" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_zip +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_zip +msgid "Zip" msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_website -#: view:magento.backend:0 -#: field:magento.product.product,website_ids:0 -msgid "Websites" +#: selection:magento.binding.backend.read,state:0 +msgid "choose" msgstr "" #. module: connector_magento -#: help:magento.storeview,import_orders_from_date:0 +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_import_orders_from_date msgid "do not consider non-imported sale orders before this date. Leave empty to import all sale orders" msgstr "" #. module: connector_magento -#: view:magento.backend:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com" msgstr "" #. module: connector_magento -#: view:magento.backend:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com/admin" msgstr "" #. module: connector_magento -#: view:magento.backend:0 +#: selection:magento.binding.backend.read,state:0 +msgid "get" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "mag-" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_connector_magento_installed -msgid "connector_magento.installed" +#: model:ir.model,name:connector_magento.model_magento_binding_backend_read +msgid "magento.binding.backend.read" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:200 -#, python-format -msgid "Already exported" +#: model:ir.model,name:connector_magento.model_magento_config_specializer +msgid "magento.config.specializer" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:100 -#, python-format -msgid "The delivery order %s has no Magento ID, " -"can't export the tracking number." +#: model:ir.model,name:connector_magento.model_magento_res_partner_category +msgid "magento.res.partner.category" msgstr "" #. module: connector_magento -#: sql_constraint:magento.account.invoice:0 -msgid "A Magento binding for this invoice already exists." +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_warehouse_id +msgid "warehouse" msgstr "" + diff --git a/connector_magento/i18n/de.po b/connector_magento/i18n/de.po index dcad0e83d..0dc322e71 100644 --- a/connector_magento/i18n/de.po +++ b/connector_magento/i18n/de.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * connector_magento -# +# # Translators: # FIRST AUTHOR , 2014 msgid "" @@ -11,20 +11,77 @@ msgstr "" "POT-Creation-Date: 2015-07-22 09:38+0000\n" "PO-Revision-Date: 2015-07-08 12:07+0000\n" "Last-Translator: OCA Transbot \n" -"Language-Team: German (http://www.transifex.com/oca/OCA-connector-magento-8-0/language/de/)\n" +"Language-Team: German (http://www.transifex.com/oca/OCA-connector-" +"magento-8-0/language/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: connector_magento -#: help:magento.sale.order,magento_order_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_state +msgid "" +" * Draft: not confirmed yet and will not be scheduled until confirmed\n" +" * Waiting Another Operation: waiting for another move to proceed before it " +"becomes automatically available (e.g. in Make-To-Order flows)\n" +" * Waiting Availability: still waiting for the availability of products\n" +" * Partially Available: some products are available and reserved\n" +" * Ready to Transfer: products reserved, simply waiting for confirmation.\n" +" * Transferred: has been processed, can't be modified or cancelled anymore\n" +" * Cancelled: has been cancelled, can't be confirmed anymore" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_state +msgid "" +" * The 'Draft' status is used when a user is encoding a new and unconfirmed " +"Invoice.\n" +" * The 'Pro-forma' status is used when the invoice does not have an invoice " +"number.\n" +" * The 'Open' status is used when user creates invoice, an invoice number is " +"generated. It stays in the open status till the user pays the invoice.\n" +" * The 'Paid' status is set automatically when the invoice is paid. Its " +"related journal entries may or may not be reconciled.\n" +" * The 'Cancelled' status is used when user cancel invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_count +msgid "# Product Variants" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_product_count +#, fuzzy +msgid "# Products" +msgstr "Produkt" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sales_count +msgid "# Sales" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_count +#, fuzzy +msgid "# of Invoices" +msgstr "Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_count +#, fuzzy +msgid "# of Sales Order" +msgstr "Auftrag" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_magento_order_id msgid "'order_id' field in Magento" msgstr "'order_id' Feld in Magento" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form msgid "(recompute)" msgstr "(neuberechnen)" @@ -44,1151 +101,4208 @@ msgstr "Ein Backend mit gleichem Verkaufs-Präfix besteht bereits" #: sql_constraint:magento.product.product:0 #: sql_constraint:magento.res.partner:0 #: sql_constraint:magento.res.partner.category:0 -#: sql_constraint:magento.sale.order:0 -#: sql_constraint:magento.sale.order.line:0 +#: sql_constraint:magento.sale.order:0 sql_constraint:magento.sale.order.line:0 #: sql_constraint:magento.stock.picking:0 sql_constraint:magento.store:0 #: sql_constraint:magento.storeview:0 sql_constraint:magento.website:0 msgid "A binding already exists with the same Magento ID." msgstr "" #. module: connector_magento -#: sql_constraint:magento.address:0 -msgid "A partner address can only have one binding by backend." +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_type +msgid "" +"A category of the view type is a virtual category that can be used as the " +"parent of another category to create a hierarchical structure." msgstr "" #. module: connector_magento -#: help:magento.backend,sale_prefix:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_sale msgid "" -"A prefix put before the name of imported sales orders.\n" -"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, will be named 'mag-100000692' in OpenERP." +"A description of the Product that you want to communicate to your customers. " +"This description will be copied to every Sale Order, Delivery Order and " +"Customer Invoice/Refund" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "API" -msgstr "API" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_purchase +msgid "" +"A description of the Product that you want to communicate to your vendors. " +"This description will be copied to every Purchase Order, Receipt and Vendor " +"Bill/Refund." +msgstr "" #. module: connector_magento -#: field:magento.address,is_magento_order_address:0 -msgid "Address from a Magento Order" -msgstr "Adresse von einer Magento Bestellung" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "" +"A parent sales order has been canceled on the backend and needs to be " +"canceled." +msgstr "" #. module: connector_magento -#: field:magento.backend,admin_location:0 -msgid "Admin Location" -msgstr "Admin-Ort" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_id +msgid "A parent sales order is a sales order replaced by this one." +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Advanced Configuration" -msgstr "Erweiterte Einstellungen" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "A parent sales order needs cancel" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:173 -#, python-format -msgid "Already exported" +#: sql_constraint:magento.address:0 +msgid "A partner address can only have one binding by backend." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:611 -#, python-format -msgid "Already imported" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description +msgid "" +"A precise description of the Product, used only for internal information " +"purposes." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:208 -#, python-format -msgid "Already up-to-date." +#: model:ir.model.fields,help:connector_magento.field_magento_backend_sale_prefix +msgid "" +"A prefix put before the name of imported sales orders.\n" +"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, " +"will be named 'mag-100000692' in Odoo." msgstr "" #. module: connector_magento -#: help:magento.res.partner,consider_as_company:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_type msgid "" -"An account imported with a 'company' in the billing address is considered as a company.\n" -" The partner takes the name of the company and is not merged with the billing address." -msgstr "Ein Konto, welches ein Unternehmen als Rechnungsanschrift führt, wird als Unternehmen betrachtet.\nDer Partner bekommt den Namen des Unternehmens und wird nicht mit der Rechnungsanschrift zusammengeführt." +"A stockable product is a product for which you manage stock. The \"Inventory" +"\" app has to be installed.\n" +"A consumable product, on the other hand, is a product for which stock is not " +"managed.\n" +"A service is a non-material product you provide.\n" +"A digital content is a non-material product you sell online. The files " +"attached to the products are the one that are sold on the e-commerce such as " +"e-books, music, pictures,... The \"Digital Product\" module has to be " +"installed." +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_backend -msgid "Backends" -msgstr "Backends" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "API" +msgstr "API" #. module: connector_magento -#: field:magento.backend,auth_basic_password:0 -msgid "Basic Auth. Password" -msgstr "Einfaches Auth.-Passwort" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_account_id +msgid "Account" +msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_username:0 -msgid "Basic Auth. Username" -msgstr "Einfacher Auth.-Benutzername" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "Account Payable" +msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_password:0 -msgid "Basic access authentication web server side password" -msgstr "Einfache Zugriffs-Authentifizierung, Web-Server-seitiges Passwort" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "Account Receivable" +msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_username:0 -msgid "Basic access authentication web server side username" -msgstr "Einfache Zugriffs-Authentifizierung, Web-Server-seitiger Benutzername" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date +msgid "Accounting Date" +msgstr "" #. module: connector_magento -#: field:res.partner,birthday:0 -msgid "Birthday" -msgstr "Geburtstag" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction +msgid "Action Needed" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_bank_account_required msgid "" -"By clicking on the buttons,\n" -" you will initiate the synchronizations\n" -" with Magento.\n" -" Note that the import or exports\n" -" won't be done directly,\n" -" they will create 'Jobs'\n" -" executed as soon as possible." -msgstr "Beim Klicken des Buttons,\n weden Sie die Synchronisation mit Magento initialisieren.\n Beachten Sie dass Im- und Exporte nicht direkt erldedigt werden. \n Es werden 'Arbeitsschritte' erstellt, die dies so früh wie möglich erledigen." +"Activate this option if this payment method requires you to know the bank " +"account number of your customer or supplier." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:180 -#, python-format -msgid "" -"Canceled: the delivery order does not contain lines from the original sale " -"order." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_active +msgid "Active" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_delivery_carrier -msgid "Carrier" -msgstr "Frachtführer" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_comment +#, fuzzy +msgid "Additional Information" +msgstr "Informationen" #. module: connector_magento -#: help:magento.storeview,no_sales_order_sync:0 -msgid "" -"Check if the storeview is active in Magento but its sales orders should not " -"be imported." -msgstr "Anwählen, wenn die Storeview in Magento aktiv ist, Verkaufsaufträge jedoch nicht importiert werden sollen." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_type +msgid "Address Type" +msgstr "" #. module: connector_magento -#: help:magento.product.product,no_stock_sync:0 -msgid "Check this to exclude the product from stock synchronizations." -msgstr "Auswählen, wenn das Produkt von der Bestandssynchronisierung ausgeschlossen sein sollen." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_magento_order_address +msgid "Address from a Magento Order" +msgstr "Adresse von einer Magento Bestellung" #. module: connector_magento -#: help:magento.backend,product_stock_field_id:0 -msgid "" -"Choose the field of the product which will be used for stock inventory updates.\n" -"If empty, Quantity Available is used." -msgstr "Wählen Sie das Feld des Produktes, welches für Lagerinventar Updates benutzt wird. \nWenn leer, wird die verfügbare Menge benutzt." +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_admin_location +msgid "Admin Location" +msgstr "Admin-Ort" #. module: connector_magento -#: field:magento.storeview,code:0 field:magento.website,code:0 -msgid "Code" -msgstr "Code" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Advanced Configuration" +msgstr "Erweiterte Einstellungen" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,company:0 -msgid "Company" -msgstr "Unternehmen" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_all_qty_delivered +msgid "All quantities delivered" +msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Complete" -msgstr "Vollständig" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "Allow moving packs" +msgstr "" #. module: connector_magento -#: field:magento.product.product,magento_qty:0 -msgid "Computed Quantity" -msgstr "Errechnete Menge" +#: code:addons/connector_magento/models/stock_picking/exporter.py:69 +#, python-format +msgid "Already exported" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_connector_config_settings -msgid "Connector Configuration" -msgstr "Connector-Einstellungen" +#: code:addons/connector_magento/models/sale_order/importer.py:368 +#, python-format +msgid "Already imported" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,consider_as_company:0 -msgid "Considered as company" -msgstr "Als Unternehmen betrachtet" +#: code:addons/connector_magento/components/importer.py:198 +#, python-format +msgid "Already up-to-date." +msgstr "" #. module: connector_magento -#: view:payment.method:connector_magento.payment_method_view_form -msgid "Create invoice on" -msgstr "Rechnung anlegen zu" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual +msgid "Amount Due" +msgstr "" #. module: connector_magento -#: field:magento.store,create_invoice_on:0 -#: field:payment.method,create_invoice_on:0 -msgid "Create invoice on action" -msgstr "Rechnung anlegen bei Ereignis" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Amount Due in Company Currency" +msgstr "" #. module: connector_magento -#: field:magento.address,created_at:0 -#: field:magento.product.product,created_at:0 -#: field:magento.res.partner,created_at:0 -msgid "Created At (on Magento)" -msgstr "Erstellt am (in Magento)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_signed +msgid "Amount Due in Invoice Currency" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,create_uid:0 -#: field:magento.address,create_uid:0 field:magento.backend,create_uid:0 -#: field:magento.product.category,create_uid:0 -#: field:magento.product.product,create_uid:0 -#: field:magento.res.partner,create_uid:0 -#: field:magento.res.partner.category,create_uid:0 -#: field:magento.sale.order,create_uid:0 -#: field:magento.sale.order.line,create_uid:0 -#: field:magento.stock.picking,create_uid:0 field:magento.store,create_uid:0 -#: field:magento.storeview,create_uid:0 field:magento.website,create_uid:0 -msgid "Created by" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_consider_as_company +msgid "" +"An account imported with a 'company' in the billing address is considered as " +"a company.\n" +" The partner takes the name of the company and is not merged with the " +"billing address." msgstr "" +"Ein Konto, welches ein Unternehmen als Rechnungsanschrift führt, wird als " +"Unternehmen betrachtet.\n" +"Der Partner bekommt den Namen des Unternehmens und wird nicht mit der " +"Rechnungsanschrift zusammengeführt." #. module: connector_magento -#: field:magento.account.invoice,create_date:0 -#: field:magento.address,create_date:0 field:magento.backend,create_date:0 -#: field:magento.product.category,create_date:0 -#: field:magento.product.product,create_date:0 -#: field:magento.res.partner,create_date:0 -#: field:magento.res.partner.category,create_date:0 -#: field:magento.sale.order,create_date:0 -#: field:magento.sale.order.line,create_date:0 -#: field:magento.stock.picking,create_date:0 field:magento.store,create_date:0 -#: field:magento.storeview,create_date:0 field:magento.website,create_date:0 -msgid "Created on" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_related_project_id +msgid "Analytic Account" msgstr "" #. module: connector_magento -#: field:magento.backend,use_custom_api_path:0 -msgid "Custom Api Path" -msgstr "Angepasster API-Pfad" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_analytic_tag_ids +msgid "Analytic Tags" +msgstr "" #. module: connector_magento -#: field:magento.address,is_default_billing:0 -msgid "Default Invoice" -msgstr "Voreingestellte Rechnung" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_account_analytic_id +msgid "Analytic account" +msgstr "" #. module: connector_magento -#: field:magento.backend,default_lang_id:0 -msgid "Default Language" -msgstr "Standardsprache" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_value_ids +msgid "Attributes" +msgstr "" #. module: connector_magento -#: field:magento.backend,default_category_id:0 -msgid "Default Product Category" -msgstr "Voreingestellte Produktkategorie" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_workflow_process_id +msgid "Automatic Workflow" +msgstr "" #. module: connector_magento -#: field:magento.address,is_default_shipping:0 -msgid "Default Shipping" -msgstr "Vorgegebener Versand" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backorder_id +#, fuzzy +msgid "Back Order of" +msgstr "Auftrag" #. module: connector_magento -#: field:magento.product.category,description:0 -msgid "Description" -msgstr "Beschreibung" +#: model:ir.ui.menu,name:connector_magento.menu_magento_backend +msgid "Backends" +msgstr "Backends" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Do Not Manage Stock" -msgstr "Kein Lager verwalten" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_account_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_account_count +msgid "Bank" +msgstr "" #. module: connector_magento -#: help:magento.store,send_invoice_paid_mail:0 -msgid "" -"Does the invoice export/creation should send an email notification on " -"Magento side?" -msgstr "Soll bei Erstellung/Export der Rechnung eine E-Mail aus Magento versendet werden?" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_bank_id +msgid "Bank Account" +msgstr "" #. module: connector_magento -#: help:magento.store,send_picking_done_mail:0 +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_bank_id msgid "" -"Does the picking export/creation should send an email notification on " -"Magento side?" -msgstr "Soll bei Erstellung / Export eines Lieferscheins eine E-Mail aus Magento versendet werden?" +"Bank Account Number to which the invoice will be paid. A Company bank " +"account if this is a Customer Invoice or Vendor Refund, otherwise a Partner " +"bank account number." +msgstr "" #. module: connector_magento -#: field:magento.res.partner,emailid:0 -msgid "E-mail address" -msgstr "E-Mail Adresse" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_bank_account_required +msgid "Bank Account Required" +msgstr "" #. module: connector_magento -#: field:magento.storeview,enabled:0 -msgid "Enabled" -msgstr "Aktiviert" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_ids +msgid "Banks" +msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_export_partner:0 -msgid "Export Partners to Magento (experimental)" -msgstr "Exportiere Partner zu Magento (experimentell)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_barcode +msgid "Barcode" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_export_tracking:0 -msgid "Export tracking numbers" -msgstr "Exportiere Sendungsverfolgungsnummern" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_list_price +msgid "" +"Base price to compute the customer price. Sometimes called the catalog price." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic Auth. Password" +msgstr "Einfaches Auth.-Passwort" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Extensions" -msgstr "Erweiterungen" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic Auth. Username" +msgstr "Einfacher Auth.-Benutzername" #. module: connector_magento -#: field:magento.res.partner,guest_customer:0 -msgid "Guest Customer" -msgstr "Gastkunde" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic access authentication web server side password" +msgstr "Einfache Zugriffs-Authentifizierung, Web-Server-seitiges Passwort" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "HTTP Authentication" -msgstr "HTTP Authentifizierung" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic access authentication web server side username" +msgstr "Einfache Zugriffs-Authentifizierung, Web-Server-seitiger Benutzername" #. module: connector_magento -#: field:magento.account.invoice,id:0 field:magento.address,id:0 -#: field:magento.backend,id:0 field:magento.binding,id:0 -#: field:magento.product.category,id:0 field:magento.product.product,id:0 -#: field:magento.res.partner,id:0 field:magento.res.partner.category,id:0 -#: field:magento.sale.order,id:0 field:magento.sale.order.line,id:0 -#: field:magento.stock.picking,id:0 field:magento.store,id:0 -#: field:magento.storeview,id:0 field:magento.website,id:0 -msgid "ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image +msgid "Big-sized image" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,magento_id:0 -#: field:magento.address,magento_id:0 field:magento.binding,magento_id:0 -#: field:magento.product.category,magento_id:0 -#: field:magento.product.product,magento_id:0 -#: field:magento.res.partner,magento_id:0 -#: field:magento.res.partner.category,magento_id:0 -#: field:magento.sale.order,magento_id:0 -#: field:magento.sale.order.line,magento_id:0 -#: field:magento.stock.picking,magento_id:0 field:magento.store,magento_id:0 -#: field:magento.storeview,magento_id:0 field:magento.website,magento_id:0 -msgid "ID on Magento" -msgstr "ID in Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_birthday +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_users_birthday +msgid "Birthday" +msgstr "Geburtstag" #. module: connector_magento -#: help:magento.backend,default_category_id:0 -msgid "" -"If a default category is selected, products imported without a category will" -" be linked to it." -msgstr "Durch eine vor-eingestellte Standard Kategorie, werden alle Produkte, ohne irgendeine Kategorie dann mit dieser verlinkt." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_bounce +msgid "Bounce" +msgstr "" #. module: connector_magento -#: help:magento.backend,default_lang_id:0 -msgid "" -"If a default language is selected, the records will be imported in the translation of this language.\n" -"Note that a similar configuration exists for each storeview." -msgstr "Wenn Vorgabesprache ausgewählt, werden die Datensätze in der Übersetzung dieser Sprache importiert.\nEine entsprechende Einstellung gibt es auch je Storeview." +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_bulk +msgid "Bulk Weight" +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders" -msgstr "Importiere VK-Aufträge" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#, fuzzy +msgid "" +"By clicking on the buttons,\n" +" you will initiate the synchronizations\n" +" with Magento.\n" +" Note that the import or exports\n" +" won't be done directly,\n" +" they will create 'Jobs'\n" +" executed as soon as possible." +msgstr "" +"Beim Klicken des Buttons,\n" +" weden Sie die Synchronisation mit " +"Magento initialisieren.\n" +" Beachten Sie dass Im- und Exporte " +"nicht direkt erldedigt werden. \n" +" Es werden 'Arbeitsschritte' erstellt, " +"die dies so früh wie möglich erledigen." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered_updateable +#, fuzzy +msgid "Can Edit Delivered" +msgstr "Magento-Versandauftrag" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders since" -msgstr "Importiere VK-Aufträge seit" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_purchase_ok +msgid "Can be Purchased" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import all customer groups" -msgstr "Importiere alle Kundengruppen" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_rental +msgid "Can be Rent" +msgstr "" #. module: connector_magento -#: field:magento.backend,import_categories_from_date:0 -msgid "Import categories from date" -msgstr "Importiere Kategorien ab Datum" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_ok +msgid "Can be Sold" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import in background" -msgstr "Importiere im Hintergrund" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Cancel" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import partners from all websites" -msgstr "Importiere Partner von allen Webseiten" +#: code:addons/connector_magento/models/sale_order/common.py:114 +#, python-format +msgid "Cancel sales order %s" +msgstr "" #. module: connector_magento -#: field:magento.website,import_partners_from_date:0 -msgid "Import partners from date" -msgstr "Importiere Partner seit Datum" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_canceled_in_backend +msgid "Canceled in backend" +msgstr "" #. module: connector_magento -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import partners since" -msgstr "Importiere Partner seit" +#: code:addons/connector_magento/models/stock_picking/exporter.py:76 +#, python-format +msgid "" +"Canceled: the delivery order does not contain lines from the original sale " +"order." +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products categories since" -msgstr "Importiere Produktkategorien seit" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_cancellation_resolved +msgid "Cancellation from the backend resolved" +msgstr "" #. module: connector_magento -#: field:magento.backend,import_products_from_date:0 -msgid "Import products from date" -msgstr "Importiere Produkte vom Datum" +#: model:ir.model,name:connector_magento.model_delivery_carrier +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_id +msgid "Carrier" +msgstr "Frachtführer" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products since" -msgstr "Importiere/Update Produkte seit" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_from_categ_ids +msgid "Category Routes" +msgstr "" #. module: connector_magento -#: field:magento.storeview,import_orders_from_date:0 -msgid "Import sale orders from date" -msgstr "Importiere VK-Aufträge vom Datum" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_type +msgid "Category Type" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import sales orders from all store views" -msgstr "Importiere Aufträge von allen Store Views" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_channel_ids +msgid "Channels" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Imports" -msgstr "Importe" +#: model:ir.model.fields,help:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_is_company +msgid "Check if the contact is a company, otherwise it is a person" +msgstr "" #. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Informations" -msgstr "Informationen" +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "" +"Check if the storeview is active in Magento but its sales orders should not " +"be imported." +msgstr "" +"Anwählen, wenn die Storeview in Magento aktiv ist, Verkaufsaufträge jedoch " +"nicht importiert werden sollen." #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Check the existance of quants linked to this picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Check the existence of pack operation on the picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer +msgid "Check this box if this contact is a customer." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier +msgid "" +"Check this box if this contact is a vendor. If it's not checked, purchase " +"people will not see it when encoding a purchase order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_employee +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_employee +msgid "Check this box if this contact is an Employee." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_no_stock_sync +msgid "Check this to exclude the product from stock synchronizations." +msgstr "" +"Auswählen, wenn das Produkt von der Bestandssynchronisierung ausgeschlossen " +"sein sollen." + +#. module: connector_magento +#: code:addons/connector_magento/models/magento_backend/common.py:234 +#, python-format +msgid "" +"Check your configuration, we can't get the data. Here is the error:\n" +"%s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_child_id +#, fuzzy +msgid "Child Categories" +msgstr "Untergeordnete Magento Kategorien" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_child_ids +msgid "Child Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_product_stock_field_id +msgid "" +"Choose the field of the product which will be used for stock inventory " +"updates.\n" +"If empty, Quantity Available is used." +msgstr "" +"Wählen Sie das Feld des Produktes, welches für Lagerinventar Updates benutzt " +"wird. \n" +"Wenn leer, wird die verfügbare Menge benutzt." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_city +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_city +msgid "City" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Close" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_code +msgid "Code" +msgstr "Code" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_color +msgid "Color Index" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_partner_id +msgid "Commercial Entity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref_company_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref_company_ids +msgid "Companies that refers to partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_company_id +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_res_users_company +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Company" +msgstr "Unternehmen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_currency_id +#, fuzzy +msgid "Company Currency" +msgstr "Unternehmen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_name +#, fuzzy +msgid "Company Name" +msgstr "Unternehmen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_company_name +#, fuzzy +msgid "Company Name Entity" +msgstr "Errechnete Menge" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_type +#, fuzzy +msgid "Company Type" +msgstr "Unternehmen" + +#. module: connector_magento +#: selection:magento.stock.picking,picking_method:0 +msgid "Complete" +msgstr "Vollständig" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contact_address +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contact_address +#, fuzzy +msgid "Complete Address" +msgstr "Vollständig" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date_done +msgid "Completion Date of Transfer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_qty +msgid "Computed Quantity" +msgstr "Errechnete Menge" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_confirmation_date +#, fuzzy +msgid "Confirmation Date" +msgstr "Hauptkonfiguration" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_consider_as_company +msgid "Considered as company" +msgstr "Als Unternehmen betrachtet" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_child_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_child_ids +msgid "Contacts" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contracts_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contracts_count +msgid "Contracts" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_standard_price +msgid "Cost" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_cost_method +msgid "Cost method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_standard_price +msgid "" +"Cost of the product template used for standard stock valuation in accounting " +"and used as a base price on purchase orders. Expressed in the default unit " +"of measure of the product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_cost_method +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_cost_method +#, fuzzy +msgid "Costing Method" +msgstr "Packmethode" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_count +msgid "Count Payment Token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_bounce +msgid "Counter of the number of bounced emails for this contact" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_country_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_country_id +msgid "Country" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +msgid "Create invoice on" +msgstr "Rechnung anlegen zu" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_payment_mode_create_invoice_on +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_invoice_on +msgid "Create invoice on action" +msgstr "Rechnung anlegen bei Ereignis" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_created_at +msgid "Created At (on Magento)" +msgstr "Erstellt am (in Magento)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_uid +msgid "Created by" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_date +msgid "Created on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date +msgid "Creation Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date +msgid "Creation Date, usually the time of the order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit_limit +msgid "Credit Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_currency_id +msgid "Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_qty_available +msgid "" +"Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"stored in the Stock Location of the Warehouse of this Shop, or any of its " +"children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_custom_api_path +msgid "Custom Api Path" +msgstr "Angepasster API-Pfad" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_id +#, fuzzy +msgid "Customer" +msgstr "Gastkunde" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_delay +msgid "Customer Lead Time" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_customer +#, fuzzy +msgid "Customer Location" +msgstr "Admin-Ort" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer_payment_mode_id +#, fuzzy +msgid "Customer Payment Mode" +msgstr "Zahlweise" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "Customer Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_partner_ref +#, fuzzy +msgid "Customer Ref" +msgstr "Gastkunde" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_client_order_ref +msgid "Customer Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_taxes_id +msgid "Customer Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_date +msgid "Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date_done +msgid "Date of Transfer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_last_post +msgid "Date of the last message posted on the record." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_confirmation_date +msgid "Date on which the sale order is confirmed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_billing +msgid "Default Invoice" +msgstr "Voreingestellte Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_lang_id +msgid "Default Language" +msgstr "Standardsprache" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_owner_id +#, fuzzy +msgid "Default Owner" +msgstr "Voreingestellte Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_category_id +msgid "Default Product Category" +msgstr "Voreingestellte Produktkategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_shipping +msgid "Default Shipping" +msgstr "Vorgegebener Versand" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_id +msgid "Default Unit of Measure used for all stock operation." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_po_id +msgid "" +"Default Unit of Measure used for purchase orders. It must be in the same " +"category than the default unit of measure." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_trust +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_trust +msgid "Degree of trust you have in this debtor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered +msgid "Delivered" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_delivery_count +msgid "Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_shipping_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery Address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_customer_lead +msgid "Delivery Lead Time" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_carrier_id +msgid "Delivery Method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_count +#, fuzzy +msgid "Delivery Orders" +msgstr "Magento-Versandauftrag" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_type +msgid "Delivery Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_shipping_id +msgid "Delivery address for current invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_route_ids +msgid "" +"Depending on the modules installed, this will allow you to define the route " +"of the product: whether it will be bought, manufactured, MTO/MTS,..." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_name +msgid "Description" +msgstr "Beschreibung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_picking +#, fuzzy +msgid "Description on Picking" +msgstr "Beschreibung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_dest_id +msgid "Destination Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_discount +msgid "Discount (%)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_display_name +msgid "Display Name" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Do Not Manage Stock" +msgstr "Kein Lager verwalten" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "" +"Does the invoice export/creation should send an email notification on " +"Magento side?" +msgstr "" +"Soll bei Erstellung/Export der Rechnung eine E-Mail aus Magento versendet " +"werden?" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_picking_done_mail +msgid "" +"Does the picking export/creation should send an email notification on " +"Magento side?" +msgstr "" +"Soll bei Erstellung / Export eines Lieferscheins eine E-Mail aus Magento " +"versendet werden?" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_due +msgid "Due Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_emailid +msgid "E-mail address" +msgstr "E-Mail Adresse" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_partner_share +msgid "" +"Either customer (no user), either shared user. Indicated the current partner " +"is a customer without access or with a limited access created for sharing " +"data." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email +msgid "Email" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_notify_email +msgid "Email Messages and Notifications" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_employee +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_employee +msgid "Employee" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_enabled +msgid "Enabled" +msgstr "Aktiviert" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_price +#, fuzzy +msgid "Estimated Delivery Price" +msgstr "Magento-Versandauftrag" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_exception_ids +#, fuzzy +msgid "Exceptions" +msgstr "Optionen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_expense_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_expense_id +msgid "Expense Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_validity_date +msgid "Expiration Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_export_tracking +msgid "Export tracking numbers" +msgstr "Exportiere Sendungsverfolgungsnummern" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_ids +msgid "Extra categories" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_fax +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_fax +msgid "Fax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_data +msgid "File" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_name +#, fuzzy +msgid "File Name" +msgstr "Name" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_carrier_id +msgid "Fill this field if you plan to invoice the shipping based on picking." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_firstname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_firstname +msgid "First name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_fiscal_position_id +msgid "Fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_follower_ids +msgid "Followers" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_removal_strategy_id +msgid "Force Removal Strategy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_virtual_available +#, fuzzy +msgid "Forecast Quantity" +msgstr "Errechnete Menge" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_email_formatted +msgid "Format email address \"Name \"" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email_formatted +msgid "Formatted Email" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Get" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_packaging_ids +msgid "" +"Gives the different ways to package the same product. This has no impact on " +"the picking order and is mainly used if you use the EDI module." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sequence +msgid "Gives the sequence order when displaying a product list" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_guest_customer +msgid "Guest Customer" +msgstr "Gastkunde" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_hs_code +#, fuzzy +msgid "HS Code" +msgstr "Code" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "HTTP Authentication" +msgstr "HTTP Authentifizierung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_has_checkpoint +msgid "Has Checkpoint" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Has Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_has_scrap_move +msgid "Has Scrap Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_need_cancel +msgid "Has been canceled on the backend, need to be canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_has_outstanding +msgid "Has outstanding" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Has quants already reserved" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "Has unreconciled entries" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Here is the file with information read drom the backend:" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id_5804 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_id +msgid "ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_external_id +msgid "ID on Magento" +msgstr "ID in Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_im_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_im_status +msgid "IM Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_category_id +msgid "" +"If a default category is selected, products imported without a category will " +"be linked to it." +msgstr "" +"Durch eine vor-eingestellte Standard Kategorie, werden alle Produkte, ohne " +"irgendeine Kategorie dann mit dieser verlinkt." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_lang_id +msgid "" +"If a default language is selected, the records will be imported in the " +"translation of this language.\n" +"Note that a similar configuration exists for each storeview." +msgstr "" +"Wenn Vorgabesprache ausgewählt, werden die Datensätze in der Übersetzung " +"dieser Sprache importiert.\n" +"Eine entsprechende Einstellung gibt es auch je Storeview." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "" +"If checked, this shows the packs to be moved as a whole in the Operations " +"tab all the time, even if there was no entire pack reserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_opt_out +msgid "" +"If opt-out is checked, this contact has refused to receive emails for mass " +"mailing and marketing campaign. Filter 'Available for Mass Mailing' allows " +"users to filter the partners when performing mass mailing." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'. The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_team_id +msgid "" +"If set, sale team used notably for sales and assignations related to this " +"partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "" +"If specified, this fiscal position will be used to fill the field fiscal " +"position on the sale order created by the connector.The value can also be " +"specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_warehouse_id +msgid "" +"If specified, this warehouse will be used to load fill the field warehouse " +"(and company) on the sale order created by the connector.The value can also " +"be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_lang +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_lang +msgid "" +"If the selected language is loaded in the system, all documents related to " +"this contact will be printed in this language. If not, it will be English." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_website_is_multi_company +msgid "" +"If this flag is set, it is possible to choose warehouse at each level. When " +"import partner, ignore company_id if this flag is set." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_backorder_id +msgid "" +"If this shipment was split, then this field links to the shipment which " +"contains the already processed part." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_active +msgid "" +"If unchecked, it will allow you to hide the product without removing it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_payment_term_id +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. If you keep the payment term and the due " +"date empty, it means direct payment. The payment term may compute several " +"due dates, for example 50% now, 50% in one month." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_due +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. The payment term may compute several due " +"dates, for example 50% now and 50% in one month, but if you want to force a " +"due date, make sure that the payment term is not set on the invoice. If you " +"keep the payment term and the due date empty, it means direct payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_ignore_exception +#, fuzzy +msgid "Ignore Exceptions" +msgstr "Sortimentsoptionen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image +msgid "Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image +msgid "" +"Image of the product variant (Big-sized image of product template if false). " +"It is automatically resized as a 1024x1024px image, with aspect ratio " +"preserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_medium +msgid "" +"Image of the product variant (Medium-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_small +msgid "" +"Image of the product variant (Small-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders" +msgstr "Importiere VK-Aufträge" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders since" +msgstr "Importiere VK-Aufträge seit" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import all customer groups" +msgstr "Importiere alle Kundengruppen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_categories_from_date +msgid "Import categories from date" +msgstr "Importiere Kategorien ab Datum" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import in background" +msgstr "Importiere im Hintergrund" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import partners from all websites" +msgstr "Importiere Partner von allen Webseiten" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_import_partners_from_date +msgid "Import partners from date" +msgstr "Importiere Partner seit Datum" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import partners since" +msgstr "Importiere Partner seit" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products categories since" +msgstr "Importiere Produktkategorien seit" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_products_from_date +msgid "Import products from date" +msgstr "Importiere Produkte vom Datum" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products since" +msgstr "Importiere/Update Produkte seit" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_import_orders_from_date +msgid "Import sale orders from date" +msgstr "Importiere VK-Aufträge vom Datum" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import sales orders from all store views" +msgstr "Importiere Aufträge von allen Store Views" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Imports" +msgstr "Importe" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_income_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_income_id +msgid "Income Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_incoming_qty +msgid "Incoming" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_incoterms_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_incoterm +msgid "Incoterms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_incoterms_id +msgid "" +"Incoterms are series of sales terms. They are used to divide transaction " +"costs and responsibilities between buyer and seller and reflect state-of-the-" +"art transportation practices." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Informations" +msgstr "Informationen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_default_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref +msgid "Internal Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_barcode +msgid "International Article Number used for product identification." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_incoterm +msgid "" +"International Commercial Terms are a series of predefined commercial terms " +"used in international transactions." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_inventory +#, fuzzy +msgid "Inventory Location" +msgstr "Sortimentsoptionen" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form msgid "Inventory Options" msgstr "Sortimentsoptionen" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_account_invoice -#: field:magento.account.invoice,openerp_id:0 -msgid "Invoice" -msgstr "Rechnung" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_valuation +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_valuation +#, fuzzy +msgid "Inventory Valuation" +msgstr "Sortimentsoptionen" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_invoice +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn +msgid "Invoice" +msgstr "Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_invoice_id +#, fuzzy +msgid "Invoice Address" +msgstr "Magento-Adresse" + +#. module: connector_magento +#: code:addons/connector_magento/models/account_invoice/exporter.py:26 +#, python-format +msgid "Invoice Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_invoice +#, fuzzy +msgid "Invoice Date" +msgstr "Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_invoice_line_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_lines +#, fuzzy +msgid "Invoice Lines" +msgstr "Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_shipping_on_delivery +msgid "Invoice Shipping on Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_status +#, fuzzy +msgid "Invoice Status" +msgstr "Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_refund_invoice_id +msgid "Invoice for which this invoice is the refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_invoiced +#, fuzzy +msgid "Invoiced" +msgstr "Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_ids +#, fuzzy +msgid "Invoices" +msgstr "Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_invoice_policy +msgid "Invoicing Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_is_multi_company +msgid "Is Backend Multi-Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_is_company +#, fuzzy +msgid "Is a Company" +msgstr "Unternehmen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer +#, fuzzy +msgid "Is a Customer" +msgstr "Gastkunde" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_is_delivery +msgid "Is a Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier +msgid "Is a Vendor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reconciled +msgid "" +"It indicates that the invoice has been paid and the journal entry of the " +"invoice has been reconciled with one or several journal entries of payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_sent +msgid "It indicates that the invoice has been sent." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_move_type +msgid "It specifies goods to be deliver partially or all at once" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_function +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_function +msgid "Job Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_journal_id +msgid "Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_id +msgid "Journal Entry" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_name +msgid "Journal Entry Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_journal_item_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_journal_item_count +msgid "Journal Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_invoice +msgid "Keep empty to use the current date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date +msgid "Keep empty to use the invoice date." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_lang_id +msgid "Language" +msgstr "Sprache" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_last_post +msgid "Last Message Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_address___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_store___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_website___last_update +msgid "Last Modified on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_date +msgid "Last Updated on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_magento_qty +msgid "Last computed quantity to send on Magento." +msgstr "Zuletzt errechnete Anzahl die zu Magento geschickt wird." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lastname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lastname +msgid "Last name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "" +"Last time the invoices & payments matching was performed for this partner. " +"It is set either if there's not at least an unreconciled debit and an " +"unreconciled credit or if you click the \"Done\" button." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "Latest Invoices & Payments Matching Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_launch_pack_operations +msgid "Launch Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_sequence +msgid "Layout Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_left +msgid "Left Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_left +msgid "Left parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_id +msgid "Link to the automatically generated Journal Items." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_location +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_location_id +msgid "Location" +msgstr "Standort" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_packaging_ids +msgid "Logistical Units" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.menu,name:connector_magento.menu_magento_root +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +#: model:ir.ui.view,arch_db:connector_magento.view_magento_delivery_carrier_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_category_form +msgid "Magento" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_address +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_tree +msgid "Magento Address" +msgstr "Magento-Adresse" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_address_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Magento Address Bindings" +msgstr "Magento-Addresszuordnung" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_backend +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_backend_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_tree +msgid "Magento Backend" +msgstr "Magento-Backend" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_backend +msgid "Magento Backends" +msgstr "Magento-Backends" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_carrier_code +#, fuzzy +msgid "Magento Base Carrier Code" +msgstr "Magento-Schüssel Spediteur" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding +msgid "Magento Binding (abstract)" +msgstr "Magento Zuordnung (abstrakt)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_stock_picking_magento_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.product_normal_form_view +#: model:ir.ui.view,arch_db:connector_magento.view_invoice_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_sale_order_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_stock_picking_out_magento_form +msgid "Magento Bindings" +msgstr "Magento-Zuordnungen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_code +msgid "Magento Carrier Code" +msgstr "Magento-Schüssel Spediteur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_child_ids +msgid "Magento Child Categories" +msgstr "Untergeordnete Magento Kategorien" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Magento Configuration" +msgstr "Magento-Einstellungen" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_stock_picking +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_tree +msgid "Magento Delivery Order" +msgstr "Magento-Versandauftrag" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_group_id +msgid "Magento Group (Category)" +msgstr "Magento Gruppe (Kategorie)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_id +#, fuzzy +msgid "Magento Id" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_account_invoice +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_tree +msgid "Magento Invoice" +msgstr "Magento-Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_id +msgid "Magento Order ID" +msgstr "Magento-Bestell ID" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_line_ids +msgid "Magento Order Lines" +msgstr "Magento-Auftragszeilen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_parent_id +msgid "Magento Parent Category" +msgstr "Magento-Überkategorie" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_partner_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_tree +msgid "Magento Partner" +msgstr "Magento-Partner" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_product +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_tree +msgid "Magento Product" +msgstr "Magento-Produkt" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_category +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_tree +msgid "Magento Product Category" +msgstr "Magento-Produktkategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_type +msgid "Magento Product Type" +msgstr "Magento-Produkttyp" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_binding_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_product_binding_ids +msgid "Magento Products" +msgstr "Magento-Produkte" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_rewards +#: model:product.template,name:connector_magento.product_product_rewards_product_template +#, fuzzy +msgid "Magento Rewards" +msgstr "Magento-Backends" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_order_id +msgid "Magento Sale Order" +msgstr "Magento-Auftrag" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order_line +msgid "Magento Sale Order Line" +msgstr "Magento-Auftragszeile" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_tree +#, fuzzy +msgid "Magento Sales Orders" +msgstr "Magento-Auftrag" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_tree +msgid "Magento Store" +msgstr "Magento-Store" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_store_credit +#: model:product.template,name:connector_magento.product_product_store_credit_product_template +#, fuzzy +msgid "Magento Store Credit" +msgstr "Magento-Store" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_store +msgid "Magento Stores" +msgstr "Magento-Stores" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_storeview +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_storeview_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_tree +msgid "Magento Storeview" +msgstr "Magento-Storeview" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview +msgid "Magento Storeviews" +msgstr "Magento-Storeviews" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_tracking_title +msgid "Magento Tracking Title" +msgstr "Magento-Sendungsverfolgungstitel" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_taxvat +msgid "Magento VAT" +msgstr "Magento-USt" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_website_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_tree +msgid "Magento Website" +msgstr "Magento-Webseite" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_website +msgid "Magento Websites" +msgstr "Magento-Webseiten" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_backend_id +#, fuzzy +msgid "Magento backend id" +msgstr "Magento-Backend" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_binding_model +#, fuzzy +msgid "Magento binding model" +msgstr "Magento-Zuordnungen" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:58 +#, python-format +msgid "Magento sales order is already in state %s" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Main Configuration" +msgstr "Hauptkonfiguration" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_main_exception_id +msgid "Main Exception" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backorders +msgid "Manage Inventory Backorders" +msgstr "Bestände zu Lieferrückständen" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Manage Stock" +msgstr "Bestandsverwaltung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_manage_stock +msgid "Manage Stock Level" +msgstr "Bestandsmengen" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_track_service +msgid "" +"Manually set quantities on order: Invoice based on the manually entered " +"quantity, without creating an analytic account.\n" +"Timesheets on contract: Invoice based on the tracked hours on the related " +"timesheet.\n" +"Create a task and track hours: Create a task on the sale order validation " +"and track the work hours." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_validity_date +msgid "" +"Manually set the expiration date of your quotation (offer), or it will set " +"the date automatically based on the template if online quotation is " +"installed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_max_date +msgid "Max. Expected Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_medium +msgid "Medium-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_medium +msgid "" +"Medium-sized image of this contact. It is automatically resized as a " +"128x128px image, with aspect ratio preserved. Use this field in form views " +"or some kanban views." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn_msg +#, fuzzy +msgid "Message for Invoice" +msgstr "Magento-Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn_msg +#, fuzzy +msgid "Message for Sales Order" +msgstr "Magento-Auftrag" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn_msg +#, fuzzy +msgid "Message for Sales Order Line" +msgstr "Magento-Auftragszeile" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn_msg +#, fuzzy +msgid "Message for Stock Picking" +msgstr "Kommissionierung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_ids +msgid "Messages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_orderpoint_ids +msgid "Minimum Stock Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_mobile +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_mobile +msgid "Mobile" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_name +msgid "Name" +msgstr "Name" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_need_cancel +msgid "Need to be canceled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_newsletter +msgid "Newsletter" +msgstr "Newsletter" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "No Sales Order Synchronization" +msgstr "Keine Verkaufsauftrag-Synchronisation" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "No Sell" +msgstr "Kein Verkauf" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_no_stock_sync +msgid "No Stock Synchronization" +msgstr "Keine Bestands-Synchronisation" + +#. module: connector_magento +#: code:addons/connector_magento/models/queue_job/common.py:27 +#, python-format +msgid "" +"No admin URL configured on the backend or no admin path is defined for this " +"record." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:63 +#, python-format +msgid "No tracking number to send." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_product_ids +msgid "Non pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_notes +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_note +msgid "Notes" +msgstr "Notizen" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:363 +#: code:addons/connector_magento/components/exporter.py:368 +#, python-format +msgid "Nothing to export." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_number +msgid "Number" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_number_of_packages +msgid "Number of Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_line_customer_lead +msgid "" +"Number of days between the order confirmation and the shipping of the " +"products to the customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#, fuzzy +msgid "" +"Once imported,\n" +" some types of records,\n" +" like the products or categories,\n" +" need a manual review.\n" +" You will find the list\n" +" of the new records to review\n" +" in the menu 'Connectors > Checkpoint'." +msgstr "" +"Einmal importiert,\n" +" einige Typen von Daten, \n" +" wie Produkte oder Kategorien, \n" +" brauchen eine manuelle Überprüfung.\n" +" Sie finden die Liste der zu prüfenden Daten " +"in dem \n" +" Menü 'Connectors > Prüfungen'." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_opt_out +msgid "Opt-Out" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Options" +msgstr "Optionen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_date_order +msgid "Order Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_order_line +#, fuzzy +msgid "Order Lines" +msgstr "Auftragsposition" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_name +msgid "Order Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_state +msgid "Order Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_invoice_policy +msgid "" +"Ordered Quantity: Invoice based on the quantity the customer ordered.\n" +"Delivered Quantity: Invoiced based on the quantity the vendor delivered " +"(time or deliveries)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_outgoing_qty +msgid "Outgoing" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_outstanding_credits_debits_widget +msgid "Outstanding credits debits widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_owner_id +msgid "Owner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_pack_ids +msgid "Pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_package_ids +msgid "Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_packaging +msgid "Packaging" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 +#: selection:magento.store,create_invoice_on:0 +msgid "Paid" +msgstr "Bezahlt" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reconciled +msgid "Paid/Reconciled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_id +#, fuzzy +msgid "Parent Category" +msgstr "Partnerkategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_parent_id +msgid "Parent Magento Order" +msgstr "Übergeordneter Vk-Auftrag" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_id +#, fuzzy +msgid "Parent Order" +msgstr "Übergeordneter Vk-Auftrag" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_name +msgid "Parent name" +msgstr "" + +#. module: connector_magento +#: selection:magento.stock.picking,picking_method:0 +msgid "Partial" +msgstr "Teilweise" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_partner_id +msgid "Partner" +msgstr "Partner" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_odoo_id +msgid "Partner Category" +msgstr "Partnerkategorie" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner_category +msgid "Partner Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_partner_ids +#, fuzzy +msgid "Partners" +msgstr "Partner" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_password +msgid "Password" +msgstr "Passwort" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit_limit +msgid "Payable Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_mode_id +#, fuzzy +msgid "Payment Mode" +msgstr "Zahlweise" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_payment_mode +#, fuzzy +msgid "Payment Modes" +msgstr "Zahlweise" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_move_line_ids +#, fuzzy +msgid "Payment Move Lines" +msgstr "Magento-Auftragszeilen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference_type +msgid "Payment Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_term_id +#, fuzzy +msgid "Payment Terms" +msgstr "Zahlweise" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_ids +#, fuzzy +msgid "Payment Tokens" +msgstr "Zahlweise" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_ids +#, fuzzy +msgid "Payments" +msgstr "Zahlweise" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payments_widget +#, fuzzy +msgid "Payments widget" +msgstr "Zahlweise" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_phone +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_phone +msgid "Phone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_method +msgid "Picking Method" +msgstr "Packmethode" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_id +#, fuzzy +msgid "Picking Type" +msgstr "Packmethode" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_ids +msgid "Picking associated to this sale" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_notify_email +msgid "" +"Policy to receive emails for new messages pushed to your personal Inbox:\n" +"- Never: no emails are sent\n" +"- All Messages: for every notification you receive in your Inbox" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price +msgid "Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce +msgid "Price Reduce" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxexcl +msgid "Price Reduce Tax excl" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxinc +msgid "Price Reduce Tax inc" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_item_ids +msgid "Pricelist Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_item_ids +msgid "Pricelist item ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_catalog_price_tax_included +msgid "Prices include tax" +msgstr "Preise inkl. Steuer" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_id +#, fuzzy +msgid "Pricing/Primary Category" +msgstr "Partnerkategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_printed +msgid "Printed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_priority +msgid "Priority" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_priority +msgid "" +"Priority for this picking. Setting manually a value here would set it as " +"priority for all the moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_procurement_group_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_group_id +msgid "Procurement Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_procurement +#, fuzzy +msgid "Procurement Location" +msgstr "Admin-Ort" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_procurement_ids +msgid "Procurements" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_product +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_product_id +msgid "Product" +msgstr "Produkt" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_line_ids +msgid "Product Attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_category +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_odoo_id +msgid "Product Category" +msgstr "Produktkategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_tmpl_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_tmpl_id +#, fuzzy +msgid "Product Template" +msgstr "Produktkategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_type +#, fuzzy +msgid "Product Type" +msgstr "Magento-Produkttyp" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_production +#, fuzzy +msgid "Production Location" +msgstr "Admin-Ort" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_ids +#, fuzzy +msgid "Products" +msgstr "Produkt" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_delivery_type +msgid "Provider" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_purchase +#, fuzzy +msgid "Purchase Description" +msgstr "Beschreibung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_po_id +msgid "Purchase Unit of Measure" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_qty +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom_qty +#, fuzzy +msgid "Quantity" +msgstr "Errechnete Menge" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_qty_available +#, fuzzy +msgid "Quantity On Hand" +msgstr "Verkaufsmenge < 0" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_incoming_qty +msgid "" +"Quantity of products that are planned to arrive.\n" +"In a context with a single Stock Location, this includes goods arriving to " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location with " +"'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_outgoing_qty +msgid "" +"Quantity of products that are planned to leave.\n" +"In a context with a single Stock Location, this includes goods leaving this " +"Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving the Stock " +"Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods leaving any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_queue_job +msgid "Queue Job" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_expense_policy +msgid "Re-Invoice Expenses" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Read Binding information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.magento_binding_backend_read_act_window +msgid "Read information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reception_count +msgid "Receipt" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "Recompute pack operation?" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/deleter.py:21 +#, python-format +msgid "Record %s deleted on Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/importer.py:189 +#, python-format +msgid "Record does no longer exist in Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:370 +#, python-format +msgid "Record exported with ID %s on Magento." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_name +msgid "Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_origin +msgid "Reference of the document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_origin +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_origin +msgid "Reference of the document that produced this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_name +#, fuzzy +msgid "Reference/Description" +msgstr "Beschreibung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_id +#, fuzzy +msgid "Related Company" +msgstr "Unternehmen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_ids +msgid "Related Packing Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_related_backorder_ids +msgid "Related backorders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Remaining amount due in the currency of the company." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_signed +msgid "Remaining amount due in the currency of the invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual +msgid "Remaining amount due." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/common.py:137 +#, python-format +msgid "Reopen sales order %s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_nbr_reordering_rules +msgid "Reordering Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_max_qty +msgid "Reordering max qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_min_qty +msgid "Reordering min qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_right +msgid "Right Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_right +msgid "Right parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_route_id +msgid "Route" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_route_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_ids +msgid "Routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_rule_group +msgid "Rule group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_sale +#, fuzzy +msgid "Sale Description" +msgstr "Beschreibung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_sale_id +msgid "Sale Order" +msgstr "Auftrag" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_odoo_id +msgid "Sale Order Line" +msgstr "Auftragsposition" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_sale_prefix +msgid "Sale Prefix" +msgstr "Verkaufs-Präfix" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_list_price +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_lst_price +#, fuzzy +msgid "Sale Price" +msgstr "Verkaufs-Präfix" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_product_pricelist +#, fuzzy +msgid "Sale Pricelist" +msgstr "Verkaufs-Präfix" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_workflow_process_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_workflow_process_id +msgid "Sale Workflow Process" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:54 +#, python-format +msgid "Sale is not linked with a Magento sales order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn +msgid "Sales Order" +msgstr "Auftrag" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order_line +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn +msgid "Sales Order Line" +msgstr "Auftragsposition" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_team_id +msgid "Sales Team" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_salesman_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_user_id +#, fuzzy +msgid "Salesperson" +msgstr "Auftrag" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_min_date +msgid "Scheduled Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_min_date +msgid "" +"Scheduled time for the first part of the shipment to be processed. Setting " +"manually a value here would set it as expected date for all the stock moves." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_max_date +msgid "Scheduled time for the last part of the shipment to be processed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_id +#, fuzzy +msgid "Section" +msgstr "Beschreibung" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_categ_id +msgid "Select category for the current product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Select the default payment mode for this customer." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Select the default payment mode for this supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_line_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_sale_warn +msgid "" +"Selecting the \"Warning\" option will notify user with the message, " +"Selecting \"Blocking Message\" will throw an exception with the message and " +"block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_self +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_self +msgid "Self" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0" +msgstr "Verkaufsmenge < 0" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0 and Use Customer Notification" +msgstr "Verkaufsmenge < 0 und benutzte Kundenbenachrichtigungen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "Send email notification on invoice validated/paid" +msgstr "Sende EMail-Banachrichtigung bei geprüfter/bezahlter Rechnung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_picking_done_mail +msgid "Send email notification on picking done" +msgstr "Sende Versandbestätigung per E-Mail" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_sent +msgid "Sent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sequence +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_sequence +msgid "Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_removal_strategy_id +msgid "" +"Set a specific removal strategy that will be used regardless of the source " +"location for this product category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_partner_share +#, fuzzy +msgid "Share Partner" +msgstr "Magento-Partner" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_price +msgid "Shipping Cost" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:25 +#, python-format +msgid "Shipping Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_policy +msgid "Shipping Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_account_payment_mode_create_invoice_on +#, fuzzy +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"If nothing is set, the option falls back to the same option on the Magento " +"store related to the sales order." +msgstr "" +"Soll die Rechnung angelegt werden, wenn sie geprüft wurde oder wenn Sie in " +"OpenERP als bezahlt gekennzeichnet wurde?\n" +"Ist nicht angegeben, wird auf die Einstellung aus dem zugehörigen Magento-" +"Shop verwendet." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_create_invoice_on +#, fuzzy +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"This only takes effect if the sales order's related payment method is not " +"giving an option for this by itself. (See Payment Methods)" +msgstr "" +"Soll die Rechnung angelegt werden, wenn der Auftrag geprüft wurde oder " +"wenner in OpenERP bezahlt wurde?\n" +"Diese Einstellung greift nur, wenn die Zahlweise die Wahl nicht vorwegnimmt. " +"(siehe Zahlweisen)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_type +msgid "Signup Token Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_valid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_valid +msgid "Signup Token is Valid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_url +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_url +msgid "Signup URL" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_expiration +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_expiration +msgid "Signup expiration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_token +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_token +msgid "Signup token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_small +msgid "Small-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_small +msgid "" +"Small-sized image of this contact. It is automatically resized as a 64x64px " +"image, with aspect ratio preserved. Use this field anywhere a small image is " +"required." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_sort_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_sort_order +msgid "Sort Order" +msgstr "Sortierung" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_origin +msgid "Source Document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_id +msgid "Source Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_account_analytic_id +msgid "Specific analytic account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "Specific fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_warehouse_id +msgid "Specific warehouse" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_ok +msgid "Specify if the product can be selected in a sales order line." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +" Average Price: The cost price is recomputed at each incoming " +"shipment and used for the product valuation.\n" +" Real Price: The cost price displayed is the price of the " +"last outgoing product (will be use in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +"Average Price: The cost price is recomputed at each incoming shipment and " +"used for the product valuation.\n" +"Real Price: The cost price displayed is the price of the last outgoing " +"product (will be used in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_hs_code +msgid "Standardized code for international shipping and goods declaration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_state_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_state_id +msgid "State" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/invoice.py:122 -#: code:addons/connector_magento/tests/test_export_invoice.py:225 +#: code:addons/connector_magento/models/sale_order/exporter.py:51 #, python-format -msgid "Invoice Created" +msgid "State %s is not exported." msgstr "" #. module: connector_magento -#: field:magento.storeview,lang_id:0 -msgid "Language" -msgstr "Sprache" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_state +msgid "Status" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,write_uid:0 field:magento.address,write_uid:0 -#: field:magento.backend,write_uid:0 -#: field:magento.product.category,write_uid:0 -#: field:magento.product.product,write_uid:0 -#: field:magento.res.partner,write_uid:0 -#: field:magento.res.partner.category,write_uid:0 -#: field:magento.sale.order,write_uid:0 -#: field:magento.sale.order.line,write_uid:0 -#: field:magento.stock.picking,write_uid:0 field:magento.store,write_uid:0 -#: field:magento.storeview,write_uid:0 field:magento.website,write_uid:0 -msgid "Last Updated by" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_stock_field_id +msgid "Stock Field" +msgstr "Bestandsfeld" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_input +msgid "Stock Input Account" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,write_date:0 -#: field:magento.address,write_date:0 field:magento.backend,write_date:0 -#: field:magento.product.category,write_date:0 -#: field:magento.product.product,write_date:0 -#: field:magento.res.partner,write_date:0 -#: field:magento.res.partner.category,write_date:0 -#: field:magento.sale.order,write_date:0 -#: field:magento.sale.order.line,write_date:0 -#: field:magento.stock.picking,write_date:0 field:magento.store,write_date:0 -#: field:magento.storeview,write_date:0 field:magento.website,write_date:0 -msgid "Last Updated on" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_journal +msgid "Stock Journal" msgstr "" #. module: connector_magento -#: help:magento.product.product,magento_qty:0 -msgid "Last computed quantity to send on Magento." -msgstr "Zuletzt errechnete Anzahl die zu Magento geschickt wird." +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_lines +#, fuzzy +msgid "Stock Moves" +msgstr "Bestandsfeld" #. module: connector_magento -#: field:magento.account.invoice,sync_date:0 field:magento.address,sync_date:0 -#: field:magento.binding,sync_date:0 -#: field:magento.product.category,sync_date:0 -#: field:magento.product.product,sync_date:0 -#: field:magento.res.partner,sync_date:0 -#: field:magento.res.partner.category,sync_date:0 -#: field:magento.sale.order,sync_date:0 -#: field:magento.sale.order.line,sync_date:0 -#: field:magento.stock.picking,sync_date:0 field:magento.store,sync_date:0 -#: field:magento.storeview,sync_date:0 field:magento.website,sync_date:0 -msgid "Last synchronization date" -msgstr "Letzte Synchronisierung" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_output +msgid "Stock Output Account" +msgstr "" #. module: connector_magento -#: field:magento.backend,location:0 -msgid "Location" -msgstr "Standort" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_odoo_id +msgid "Stock Picking" +msgstr "Kommissionierung" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_root -#: view:payment.method:connector_magento.payment_method_view_form -#: view:res.partner.category:connector_magento.view_partner_category_form -msgid "Magento" -msgstr "Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "Stock Valuation Account" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_address -#: view:magento.address:connector_magento.view_magento_address_form -#: view:magento.address:connector_magento.view_magento_address_tree -msgid "Magento Address" -msgstr "Magento-Adresse" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_move_ids +#, fuzzy +msgid "Stock move ids" +msgstr "Bestandsfeld" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_address_bind_ids:0 -msgid "Magento Address Bindings" -msgstr "Magento-Addresszuordnung" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_quant_ids +#, fuzzy +msgid "Stock quant ids" +msgstr "Bestandsfeld" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_backend -#: field:magento.account.invoice,backend_id:0 -#: field:magento.address,backend_id:0 -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.backend:connector_magento.view_magento_backend_tree -#: field:magento.binding,backend_id:0 -#: field:magento.product.category,backend_id:0 -#: field:magento.product.product,backend_id:0 -#: field:magento.res.partner,backend_id:0 -#: field:magento.res.partner.category,backend_id:0 -#: field:magento.sale.order,backend_id:0 -#: field:magento.sale.order.line,backend_id:0 -#: field:magento.stock.picking,backend_id:0 field:magento.store,backend_id:0 -#: field:magento.storeview,backend_id:0 field:magento.website,backend_id:0 -msgid "Magento Backend" -msgstr "Magento-Backend" +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_store_id +msgid "Store" +msgstr "Store" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_backend -msgid "Magento Backends" -msgstr "Magento-Backends" +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_store_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Stores" +msgstr "Stores" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_binding -#: model:ir.model,name:connector_magento.model_magento_res_partner_category -msgid "Magento Binding (abstract)" -msgstr "Magento Zuordnung (abstrakt)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_store_id +#, fuzzy +msgid "Storeview" +msgstr "Storeviews" #. module: connector_magento -#: view:account.invoice:connector_magento.view_invoice_magento_form -#: field:account.invoice,magento_bind_ids:0 -#: view:product.category:connector_magento.view_product_category_form -#: field:product.category,magento_bind_ids:0 -#: view:product.product:connector_magento.product_normal_form_view -#: field:product.product,magento_bind_ids:0 -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_bind_ids:0 -#: field:res.partner.category,magento_bind_ids:0 -#: field:sale.order,magento_bind_ids:0 -#: field:sale.order.line,magento_bind_ids:0 -#: view:stock.picking:connector_magento.view_stock_picking_out_magento_form -#: field:stock.picking,magento_bind_ids:0 -msgid "Magento Bindings" -msgstr "Magento-Zuordnungen" +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_storeview_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +msgid "Storeviews" +msgstr "Storeviews" #. module: connector_magento -#: field:delivery.carrier,magento_code:0 -msgid "Magento Carrier Code" -msgstr "Magento-Schüssel Spediteur" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street +msgid "Street" +msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_child_ids:0 -msgid "Magento Child Categories" -msgstr "Untergeordnete Magento Kategorien" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street2 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street2 +msgid "Street2" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Magento Configuration" -msgstr "Magento-Einstellungen" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_subtotal +msgid "Subtotal" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_stock_picking -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_form -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_tree -msgid "Magento Delivery Order" -msgstr "Magento-Versandauftrag" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier_payment_mode_id +#, fuzzy +msgid "Supplier Payment Mode" +msgstr "Zahlweise" #. module: connector_magento -#: field:magento.res.partner,group_id:0 -msgid "Magento Group (Category)" -msgstr "Magento Gruppe (Kategorie)" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Synchronize Metadata" +msgstr "Synchronisiere Metadaten" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_account_invoice -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_form -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_tree -msgid "Magento Invoice" -msgstr "Magento-Rechnung" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_vat +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_vat +msgid "TIN" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_order_id:0 -msgid "Magento Order ID" -msgstr "Magento-Bestell ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_name +#, fuzzy +msgid "Tag Name" +msgstr "Name" #. module: connector_magento -#: field:magento.sale.order,magento_order_line_ids:0 -msgid "Magento Order Lines" -msgstr "Magento-Auftragszeilen" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id +msgid "Tags" +msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_parent_id:0 -msgid "Magento Parent Category" -msgstr "Magento-Überkategorie" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_tax +msgid "Tax" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_res_partner -#: field:magento.address,magento_partner_id:0 -#: view:magento.res.partner:connector_magento.view_magento_res_partner_form -#: view:magento.res.partner:connector_magento.view_magento_res_partner_tree -msgid "Magento Partner" -msgstr "Magento-Partner" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_tax_class_id +msgid "Tax Class ID" +msgstr "Steuerart ID" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_product -#: view:magento.product.product:connector_magento.view_magento_product_form -#: view:magento.product.product:connector_magento.view_magento_product_tree -msgid "Magento Product" -msgstr "Magento-Produkt" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax Group" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_category -#: view:magento.product.category:connector_magento.view_magento_product_category_form -#: view:magento.product.category:connector_magento.view_magento_product_category_tree -msgid "Magento Product Category" -msgstr "Magento-Produktkategorie" +#: model:ir.model.fields,help:connector_magento.field_magento_address_vat +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_vat +msgid "" +"Tax Identification Number. Fill it if the company is subjected to taxes. " +"Used by the some of the legal statements." +msgstr "" #. module: connector_magento -#: field:magento.product.product,product_type:0 -msgid "Magento Product Type" -msgstr "Magento-Produkttyp" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_tax_line_ids +msgid "Tax Lines" +msgstr "" #. module: connector_magento -#: field:magento.backend,product_binding_ids:0 -#: field:magento.website,product_binding_ids:0 -msgid "Magento Products" -msgstr "Magento-Produkte" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_rate +msgid "Tax Rate" +msgstr "Steuersatz" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order -#: field:magento.account.invoice,magento_order_id:0 -#: field:magento.sale.order.line,magento_order_id:0 -#: field:magento.stock.picking,magento_order_id:0 -msgid "Magento Sale Order" -msgstr "Magento-Auftrag" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax groups are used with some external system like Prestashop" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order_line -msgid "Magento Sale Order Line" -msgstr "Magento-Auftragszeile" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_id +msgid "Taxes" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_store -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.store:connector_magento.view_magento_store_tree -msgid "Magento Store" -msgstr "Magento-Store" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_name +msgid "" +"Technical field holding the number given to the invoice, automatically set " +"when the invoice is validated then stored to set the same number again if " +"the invoice is cancelled, set to draft and re-validated." +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_store -msgid "Magento Stores" -msgstr "Magento-Stores" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_pricelist_id +msgid "" +"Technical field. Used for searching on pricelists, not stored in database." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_storeview -#: field:magento.sale.order,storeview_id:0 -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.storeview:connector_magento.view_magento_storeview_tree -msgid "Magento Storeview" -msgstr "Magento-Storeview" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_move_ids +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_quant_ids +#, fuzzy +msgid "Technical: used to compute quantities." +msgstr "Lager für Bestände-Ermittlung" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview -msgid "Magento Storeviews" -msgstr "Magento-Storeviews" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_note +msgid "Terms and conditions" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_tracking_title:0 -msgid "Magento Tracking Title" -msgstr "Magento-Sendungsverfolgungstitel" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_category_active +msgid "The active field allows you to hide the category without removing it." +msgstr "" #. module: connector_magento -#: field:magento.res.partner,taxvat:0 -msgid "Magento VAT" -msgstr "Magento-USt" +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount +#, fuzzy +msgid "" +"The amount computed in Odoo doesn't match with the amount in Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" +"Die in OpenERP errechnete Summe stimmt nicht mit der aus Magento überein.\n" +"\n" +"Grund:\n" +"Die Versteuerung sind in OpenERP und Magento verschieden eingestellt. Eine " +"geänderte Versteuerung hat die Endsumme evtl. verändert.\n" +"\n" +"Lösung:\n" +"Überprüfen Sie Steuern und Positionssummen und korrigieren Sie diese, falls " +"nötig." #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_website -#: field:magento.address,website_id:0 field:magento.res.partner,website_id:0 -#: field:magento.store,website_id:0 -#: view:magento.website:connector_magento.view_magento_website_form -#: view:magento.website:connector_magento.view_magento_website_tree -msgid "Magento Website" -msgstr "Magento-Webseite" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_related_project_id +msgid "The analytic account related to a sales order." +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_website -msgid "Magento Websites" -msgstr "Magento-Webseiten" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_delay +msgid "" +"The average delay in days between the confirmation of the customer order and " +"the delivery of the finished products. It's the time you promise to your " +"customers." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1079 +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:60 #, python-format -msgid "Magento sales order is already in state %s" +msgid "The carrier %s does not export tracking numbers." msgstr "" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Magentoerpconnect" -msgstr "Magentoerpconnect" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_commercial_partner_id +msgid "" +"The commercial entity that will be used on Journal Entries for this invoice" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Main Configuration" -msgstr "Hauptkonfiguration" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_company_id +msgid "The company is automatically set from your user preferences." +msgstr "" #. module: connector_magento -#: field:magento.product.product,backorders:0 -msgid "Manage Inventory Backorders" -msgstr "Bestände zu Lieferrückständen" +#: code:addons/connector_magento/models/product/importer.py:296 +#, python-format +msgid "" +"The configurable product is not imported in Odoo, because only the simple " +"products are used in the sales orders." +msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Manage Stock" -msgstr "Bestandsverwaltung" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_custom_api_path +msgid "" +"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a " +"custom API path, in that case, the location has to be completed with the " +"custom API path " +msgstr "" +"Der Vorgabe API-Pfad ist '/index.php/api/xmlrpc'. Wählen Sie diese " +"Einstellung, falls Sie einen individuellen API-Pfad verwenden. In diesem " +"Fall muß der Pfad mit diesem individuellen API-Pfad ergänzt werden." #. module: connector_magento -#: field:magento.product.product,manage_stock:0 -msgid "Manage Stock Level" -msgstr "Bestandsmengen" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_position_id +msgid "" +"The fiscal position will determine taxes and accounts used for the partner." +msgstr "" #. module: connector_magento -#: field:magento.backend,name:0 field:magento.store,name:0 -#: field:magento.storeview,name:0 field:magento.website,name:0 -msgid "Name" -msgstr "Name" +#: model:ir.model.fields,help:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_user_id +msgid "" +"The internal user that is in charge of communicating with this contact if " +"any." +msgstr "" #. module: connector_magento -#: field:magento.res.partner,newsletter:0 -msgid "Newsletter" -msgstr "Newsletter" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_name +msgid "The name that will be used on account move lines" +msgstr "" #. module: connector_magento -#: field:magento.storeview,no_sales_order_sync:0 -msgid "No Sales Order Synchronization" -msgstr "Keine Verkaufsauftrag-Synchronisation" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_product_count +msgid "" +"The number of products under this category (Does not consider the children " +"categories)" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "No Sell" -msgstr "Kein Verkauf" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_account_id +msgid "The partner account used for this invoice." +msgstr "" #. module: connector_magento -#: field:magento.product.product,no_stock_sync:0 -msgid "No Stock Synchronization" -msgstr "Keine Bestands-Synchronisation" +#: model:ir.model.fields,help:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "" +"The partner has at least one unreconciled debit and credit since last time " +"the invoices & payments matching was performed." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/related_action.py:55 -#, python-format +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reference +msgid "The partner reference of this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_tz +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_tz msgid "" -"No admin URL configured on the backend or no admin path is defined for this " -"record." +"The partner's timezone, used to output proper date and time values inside " +"printed reports. It is important to set a value for this field. You should " +"use the same timezone that is otherwise used to pick and render date and " +"time values: your computer's timezone." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:83 -#, python-format -msgid "No tracking number to send." +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_lst_price +msgid "" +"The sale price is managed from the product template. Click on the 'Variant " +"Prices' button to set the extra attribute prices." msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,notes:0 -msgid "Notes" -msgstr "Notizen" +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount_tax +#, fuzzy +msgid "" +"The tax amount computed in Odoo doesn't match with the tax amount in " +"Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" +"Die in OpenERP errechnete Steuer stimmt nicht mit der Magento Steuer " +"überein.\n" +"\n" +"Grund:\n" +"Vermutlich sind die Steuersätze in OpenERP und Magento nicht identisch. " +"Durch eine entsprechende Steuerzuordnung wurde möglicherweise der Endpreis " +"verändert.\n" +"\n" +"Lösung: \n" +"Überprüfen Sie die Steuern und auch Zuordnungen und korrigieren Sie diese " +"dann bei Bedarf." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_volume +msgid "The volume in m3." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_weight +msgid "The weight of the contents in Kg, not including any packaging, etc." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:407 -#: code:addons/connector_magento/unit/export_synchronizer.py:412 +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:41 #, python-format -msgid "Nothing to export." +msgid "The wizard must be launched from a magento backend model" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:45 +#, python-format +msgid "The wizard must be launched on a single magento backend instance" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_expense_id msgid "" -"Once imported,\n" -" some types of records,\n" -" like the products or categories,\n" -" need a manual review.\n" -" You will find the list\n" -" of the new records to review\n" -" in the menu 'Connectors > Checkpoint'." -msgstr "Einmal importiert,\n einige Typen von Daten, \n wie Produkte oder Kategorien, \n brauchen eine manuelle Überprüfung.\n Sie finden die Liste der zu prüfenden Daten in dem \n Menü 'Connectors > Prüfungen'." - -#. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Options" -msgstr "Optionen" +"This account will be used for invoices instead of the default one to value " +"expenses for the current product." +msgstr "" #. module: connector_magento -#: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 -msgid "Paid" -msgstr "Bezahlt" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_income_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"sales for the current product." +msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_parent_id:0 -msgid "Parent Magento Order" -msgstr "Übergeordneter Vk-Auftrag" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_expense_categ_id +msgid "This account will be used for invoices to value expenses." +msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Partial" -msgstr "Teilweise" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_income_categ_id +msgid "This account will be used for invoices to value sales." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner -#: field:magento.address,openerp_id:0 field:magento.res.partner,openerp_id:0 -msgid "Partner" -msgstr "Partner" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" +msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,openerp_id:0 -msgid "Partner Category" -msgstr "Partnerkategorie" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner_category -msgid "Partner Tags" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_delivery_carrier_id +msgid "This delivery method will be used when invoicing from picking." msgstr "" #. module: connector_magento -#: field:magento.backend,password:0 -msgid "Password" -msgstr "Passwort" +#: model:ir.model.fields,help:connector_magento.field_magento_address_image +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image +msgid "" +"This field holds the image used as avatar for this contact, limited to " +"1024x1024px" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_variant +msgid "" +"This field holds the image used as image for the product variant, limited to " +"1024x1024px." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_payment_method -msgid "Payment Method" -msgstr "Zahlweise" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_price_extra +msgid "This is the sum of the extra price of all attributes" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_stock_picking -msgid "Picking List" -msgstr "Kommissionierliste" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "" +"This option should respect the same\n" +" configuration as Magento. Pay\n" +" attention to the taxes on the products,\n" +" which should surely include prices when\n" +" this option is activated." +msgstr "" #. module: connector_magento -#: field:magento.stock.picking,picking_method:0 -msgid "Picking Method" -msgstr "Packmethode" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "" +"This payment term will be used instead of the default one for purchase " +"orders and vendor bills" +msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_pricing:0 -msgid "Prices are managed in OpenERP with pricelists" -msgstr "Preise werden in OpenERP mit Preislisten verwaltet" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "" +"This payment term will be used instead of the default one for sale orders " +"and customer invoices" +msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_pricing:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_product_pricelist msgid "" -"Prices are set in OpenERP and exported to Magento.\n" -"\n" -"This installs the module connector_magento_pricing." -msgstr "Preise werden in OpenERP bestimmt und zu Magento exportiert.\n\nDies installiert das Modul connector_magento_pricing." +"This pricelist will be used, instead of the default one, for sales to the " +"current partner" +msgstr "" #. module: connector_magento -#: field:magento.storeview,catalog_price_tax_included:0 -msgid "Prices include tax" -msgstr "Preise inkl. Steuer" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_customer +msgid "" +"This stock location will be used, instead of the default one, as the " +"destination location for goods you send to this partner" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_product -#: field:magento.product.product,openerp_id:0 -msgid "Product" -msgstr "Produkt" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for goods you receive from the current partner" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_category -#: field:magento.product.category,openerp_id:0 -msgid "Product Category" -msgstr "Produktkategorie" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_production +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by manufacturing orders." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/delete_synchronizer.py:38 -#, python-format -msgid "Record %s deleted on Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_procurement +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by procurements." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:199 -#, python-format -msgid "Record does no longer exist in Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_inventory +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated when you do an inventory." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:414 -#, python-format -msgid "Record exported with ID %s on Magento." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz +msgid "Timezone" msgstr "" #. module: connector_magento -#: field:magento.sale.order,openerp_id:0 -msgid "Sale Order" -msgstr "Auftrag" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz_offset +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz_offset +msgid "Timezone offset" +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,openerp_id:0 -msgid "Sale Order Line" -msgstr "Auftragsposition" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_title +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_title +msgid "Title" +msgstr "" #. module: connector_magento -#: field:magento.backend,sale_prefix:0 -msgid "Sale Prefix" -msgstr "Verkaufs-Präfix" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_to_invoice +#, fuzzy +msgid "To Invoice" +msgstr "Rechnung" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1075 -#, python-format -msgid "Sale is not linked with a Magento sales order" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_total +msgid "Total" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order -msgid "Sales Order" -msgstr "Auftrag" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount +msgid "Total Amount differs from Magento" +msgstr "Gesamtbetrag unterscheidet sich zu Magento" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order_line -msgid "Sales Order Line" -msgstr "Auftragsposition" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_total_invoiced +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_total_invoiced +#, fuzzy +msgid "Total Invoiced" +msgstr "Voreingestellte Rechnung" #. module: connector_magento -#: field:magento.storeview,section_id:0 -msgid "Sales Team" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit +msgid "Total Payable" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0" -msgstr "Verkaufsmenge < 0" - -#. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0 and Use Customer Notification" -msgstr "Verkaufsmenge < 0 und benutzte Kundenbenachrichtigungen" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit +msgid "Total Receivable" +msgstr "" #. module: connector_magento -#: field:magento.store,send_invoice_paid_mail:0 -msgid "Send email notification on invoice validated/paid" -msgstr "Sende EMail-Banachrichtigung bei geprüfter/bezahlter Rechnung" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount_tax +msgid "Total Tax Amount differs from Magento" +msgstr "Steuersumme unterscheidet sich zu Magento" #. module: connector_magento -#: field:magento.store,send_picking_done_mail:0 -msgid "Send email notification on picking done" -msgstr "Sende Versandbestätigung per E-Mail" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount +msgid "Total amount" +msgstr "Gesamtbetrag" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:126 -#: code:addons/connector_magento/tests/test_export_picking.py:89 -#: code:addons/connector_magento/tests/test_export_picking.py:135 -#: code:addons/connector_magento/tests/test_export_picking.py:169 -#, python-format -msgid "Shipping Created" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total amount in the currency of the company, negative for credit notes." msgstr "" #. module: connector_magento -#: help:payment.method,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"If nothing is set, the option falls back to the same option on the Magento store related to the sales order." -msgstr "Soll die Rechnung angelegt werden, wenn sie geprüft wurde oder wenn Sie in OpenERP als bezahlt gekennzeichnet wurde?\nIst nicht angegeben, wird auf die Einstellung aus dem zugehörigen Magento-Shop verwendet." +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total amount in the currency of the invoice, negative for credit notes." +msgstr "" #. module: connector_magento -#: help:magento.store,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"This only takes effect if the sales order's related payment method is not giving an option for this by itself. (See Payment Methods)" -msgstr "Soll die Rechnung angelegt werden, wenn der Auftrag geprüft wurde oder wenner in OpenERP bezahlt wurde?\nDiese Einstellung greift nur, wenn die Zahlweise die Wahl nicht vorwegnimmt. (siehe Zahlweisen)" +#: model:ir.model.fields,help:connector_magento.field_magento_address_credit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_credit +msgid "Total amount this customer owes you." +msgstr "" #. module: connector_magento -#: field:magento.storeview,sort_order:0 field:magento.website,sort_order:0 -msgid "Sort Order" -msgstr "Sortierung" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount_tax +msgid "Total amount w. tax" +msgstr "Bruttogesamtbetrag" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1072 -#, python-format -msgid "State %s is not exported." +#: model:ir.model.fields,help:connector_magento.field_magento_address_debit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_debit +msgid "Total amount you have to pay to this vendor." msgstr "" #. module: connector_magento -#: field:magento.backend,product_stock_field_id:0 -msgid "Stock Field" -msgstr "Bestandsfeld" - -#. module: connector_magento -#: field:magento.stock.picking,openerp_id:0 -msgid "Stock Picking" -msgstr "Kommissionierung" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total in Company Currency" +msgstr "" #. module: connector_magento -#: field:magento.storeview,store_id:0 -msgid "Store" -msgstr "Store" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total in Invoice Currency" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_store -#: view:magento.website:connector_magento.view_magento_website_form -#: field:magento.website,store_ids:0 -msgid "Stores" -msgstr "Stores" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_total_route_ids +#, fuzzy +msgid "Total routes" +msgstr "Gesamtbetrag" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview -#: view:magento.store:connector_magento.view_magento_store_form -#: field:magento.store,storeview_ids:0 -msgid "Storeviews" -msgstr "Storeviews" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_track_service +msgid "Track Service" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Synchronize Metadata" -msgstr "Synchronisiere Metadaten" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tracking +msgid "Tracking" +msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,tax_class_id:0 -msgid "Tax Class ID" -msgstr "Steuerart ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_tracking_ref +msgid "Tracking Reference" +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,tax_rate:0 -msgid "Tax Rate" -msgstr "Steuersatz" +#: model:ir.model,name:connector_magento.model_stock_picking +msgid "Transfer" +msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_recompute_pack_op msgid "" -"The amount computed in OpenERP doesn't match with the amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." -msgstr "Die in OpenERP errechnete Summe stimmt nicht mit der aus Magento überein.\n\nGrund:\nDie Versteuerung sind in OpenERP und Magento verschieden eingestellt. Eine geänderte Versteuerung hat die Endsumme evtl. verändert.\n\nLösung:\nÜberprüfen Sie Steuern und Positionssummen und korrigieren Sie diese, falls nötig." +"True if reserved quants changed, which mean we might need to recompute the " +"package operations" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:80 -#, python-format -msgid "The carrier %s does not export tracking numbers." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_type +msgid "Type" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/product.py:558 -#, python-format -msgid "" -"The configurable product is not imported in OpenERP, because only the simple" -" products are used in the sales orders." +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_code +msgid "Type of Operation" msgstr "" #. module: connector_magento -#: help:magento.backend,use_custom_api_path:0 -msgid "" -"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a" -" custom API path, in that case, the location has to be completed with the " -"custom API path " -msgstr "Der Vorgabe API-Pfad ist '/index.php/api/xmlrpc'. Wählen Sie diese Einstellung, falls Sie einen individuellen API-Pfad verwenden. In diesem Fall muß der Pfad mit diesem individuellen API-Pfad ergänzt werden." +#: code:addons/connector_magento/models/magento_website/importer.py:22 +#, python-format +msgid "Undefined" +msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount_tax -msgid "" -"The tax amount computed in OpenERP doesn't match with the tax amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." -msgstr "Die in OpenERP errechnete Steuer stimmt nicht mit der Magento Steuer überein.\n\nGrund:\nVermutlich sind die Steuersätze in OpenERP und Magento nicht identisch. Durch eine entsprechende Steuerzuordnung wurde möglicherweise der Endpreis verändert.\n\nLösung: \nÜberprüfen Sie die Steuern und auch Zuordnungen und korrigieren Sie diese dann bei Bedarf." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_unit +msgid "Unit Price" +msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_export_partner:0 -msgid "This installs the module connector_magento_export_partner." -msgstr "Dies installiert das Modul connector_magento_export_partner." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of Measure" +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "" -"This option should respect the same\n" -" configuration as Magento. Pay\n" -" attention to the taxes on the products,\n" -" which should surely include prices when\n" -" this option is activated." +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of measurement for Weight" msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount -msgid "Total Amount differs from Magento" -msgstr "Gesamtbetrag unterscheidet sich zu Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread +msgid "Unread Messages" +msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount_tax -msgid "Total Tax Amount differs from Magento" -msgstr "Steuersumme unterscheidet sich zu Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Unread Messages Counter" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount:0 -msgid "Total amount" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_untaxed +#, fuzzy +msgid "Untaxed Amount" msgstr "Gesamtbetrag" #. module: connector_magento -#: field:magento.sale.order,total_amount_tax:0 -msgid "Total amount w. tax" -msgstr "Bruttogesamtbetrag" - -#. module: connector_magento -#: code:addons/connector_magento/magento_model.py:575 -#, python-format -msgid "Undefined" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed_signed +msgid "Untaxed Amount in Company Currency" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Update" msgstr "Aktualisieren" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Update all the products stock quantities" msgstr "Produktbestände aktualisieren" #. module: connector_magento -#: field:magento.address,updated_at:0 -#: field:magento.product.product,updated_at:0 -#: field:magento.res.partner,updated_at:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_updated_at msgid "Updated At (on Magento)" msgstr "Aktualisiert am (in Magento)" #. module: connector_magento -#: help:magento.backend,location:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_location msgid "Url to magento application" msgstr "URL zur Magento-Anwendung" @@ -1199,84 +4313,313 @@ msgid "Use Default Config" msgstr "Verwende Standartkonfiguration" #. module: connector_magento -#: field:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_auth_basic msgid "Use HTTP Auth Basic" msgstr "Verwende einfache HTTP-Auth" #. module: connector_magento -#: help:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_auth_basic msgid "" "Use a Basic Access Authentication for the API. The Magento server could be " "configured to restrict access using a HTTP authentication based on a " "username and a password." -msgstr "Eine einfache Zugriff-Authentifizierung zur API verwenden. Der Magento-Server kann auf den einfachen HTTP-basierten Zugang mittels Benutzername und Passwort beschränkt sein." +msgstr "" +"Eine einfache Zugriff-Authentifizierung zur API verwenden. Der Magento-" +"Server kann auf den einfachen HTTP-basierten Zugang mittels Benutzername und " +"Passwort beschränkt sein." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_type +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_type +msgid "" +"Used to select automatically the right address according to the context in " +"sales and purchases documents." +msgstr "" #. module: connector_magento -#: field:magento.backend,username:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_username msgid "Username" msgstr "Benutzername" #. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_ids +#, fuzzy +msgid "Users" +msgstr "Benutzername" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_currency_id +msgid "Utility field to express amount currency" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 #: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 msgid "Validate" msgstr "Prüfen" #. module: connector_magento -#: field:magento.backend,version:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_valuation +msgid "Valuation" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_variant +msgid "Variant Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price_extra +msgid "Variant Price Extra" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_supplier +#, fuzzy +msgid "Vendor Location" +msgstr "Standort" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "Vendor Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference +msgid "Vendor Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_supplier_taxes_id +msgid "Vendor Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_seller_ids +msgid "Vendors" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_version msgid "Version" msgstr "Version" #. module: connector_magento -#: field:magento.backend,warehouse_id:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_volume +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_volume +msgid "Volume" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_warehouse_id msgid "Warehouse" msgstr "Lager" #. module: connector_magento -#: help:magento.backend,warehouse_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_warehouse_id msgid "Warehouse used to compute the stock quantities." msgstr "Lager für Bestände-Ermittlung" #. module: connector_magento -#: help:magento.backend,password:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warranty +msgid "Warranty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_password msgid "Webservice password" msgstr "Web-Dienst-Kennwort" #. module: connector_magento -#: help:magento.backend,username:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_username msgid "Webservice user" msgstr "Web-Dienst-Benutzer" #. module: connector_magento -#: field:magento.backend,website_ids:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_website_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website msgid "Website" msgstr "Webseite" #. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_website +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_website +msgid "Website of Partner or Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_website_ids #: model:ir.ui.menu,name:connector_magento.menu_magento_website -#: view:magento.backend:connector_magento.view_magento_backend_form -#: field:magento.product.product,website_ids:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Websites" msgstr "Webseiten" #. module: connector_magento -#: help:magento.storeview,import_orders_from_date:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_weight +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight +msgid "Weight" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_shipping_weight +#, fuzzy +msgid "Weight for Shipping" +msgstr "Vorgegebener Versand" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. This is the default " +"value for all products in this category. It can also directly be set on each " +"product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_input +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. When not set on the " +"product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. This is the " +"default value for all products in this category. It can also directly be set " +"on each product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_output +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. When not set on " +"the product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_journal +msgid "" +"When doing real-time inventory valuation, this is the Accounting Journal in " +"which entries will be automatically posted when stock moves are processed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "" +"When real-time inventory valuation is enabled on a product, this account " +"will hold the current value of the products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_zip +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_zip +msgid "Zip" +msgstr "" + +#. module: connector_magento +#: selection:magento.binding.backend.read,state:0 +msgid "choose" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_import_orders_from_date msgid "" "do not consider non-imported sale orders before this date. Leave empty to " "import all sale orders" -msgstr "Vor diesem Datum nicht-importierte Aufträge unberücksichtigt lassen. Bitte tragen Sie nichts ein, um alle Aufträge zu importieren." +msgstr "" +"Vor diesem Datum nicht-importierte Aufträge unberücksichtigt lassen. Bitte " +"tragen Sie nichts ein, um alle Aufträge zu importieren." #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com" msgstr "z.B. http://my.magento.com" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com/admin" msgstr "z.B. http://my.magento.com/admin" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: selection:magento.binding.backend.read,state:0 +#, fuzzy +msgid "get" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "mag-" msgstr "mag-" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding_backend_read +msgid "magento.binding.backend.read" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_config_specializer +msgid "magento.config.specializer" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner_category +#, fuzzy +msgid "magento.res.partner.category" +msgstr "Magento-Überkategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_warehouse_id +#, fuzzy +msgid "warehouse" +msgstr "Lager" + +#~ msgid "Connector Configuration" +#~ msgstr "Connector-Einstellungen" + +#~ msgid "Export Partners to Magento (experimental)" +#~ msgstr "Exportiere Partner zu Magento (experimentell)" + +#~ msgid "Extensions" +#~ msgstr "Erweiterungen" + +#~ msgid "Last synchronization date" +#~ msgstr "Letzte Synchronisierung" + +#~ msgid "Magentoerpconnect" +#~ msgstr "Magentoerpconnect" + +#~ msgid "Picking List" +#~ msgstr "Kommissionierliste" + +#~ msgid "Prices are managed in OpenERP with pricelists" +#~ msgstr "Preise werden in OpenERP mit Preislisten verwaltet" + +#~ msgid "" +#~ "Prices are set in OpenERP and exported to Magento.\n" +#~ "\n" +#~ "This installs the module connector_magento_pricing." +#~ msgstr "" +#~ "Preise werden in OpenERP bestimmt und zu Magento exportiert.\n" +#~ "\n" +#~ "Dies installiert das Modul connector_magento_pricing." + +#~ msgid "This installs the module connector_magento_export_partner." +#~ msgstr "Dies installiert das Modul connector_magento_export_partner." diff --git a/connector_magento/i18n/es.po b/connector_magento/i18n/es.po index cddb6520d..dc9f735d9 100644 --- a/connector_magento/i18n/es.po +++ b/connector_magento/i18n/es.po @@ -1,32 +1,85 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * connector_magento -# +# # Translators: -# FIRST AUTHOR , 2014 +# enjolras , 2018 msgid "" msgstr "" -"Project-Id-Version: connector-magento (8.0)\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-07-22 09:38+0000\n" -"PO-Revision-Date: 2015-07-08 12:07+0000\n" -"Last-Translator: OCA Transbot \n" -"Language-Team: Spanish (http://www.transifex.com/oca/OCA-connector-magento-8-0/language/es/)\n" +"POT-Creation-Date: 2017-11-30 16:29+0000\n" +"PO-Revision-Date: 2017-11-30 16:29+0000\n" +"Last-Translator: enjolras , 2018\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: connector_magento -#: help:magento.sale.order,magento_order_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_state +msgid "" +" * Draft: not confirmed yet and will not be scheduled until confirmed\n" +" * Waiting Another Operation: waiting for another move to proceed before it " +"becomes automatically available (e.g. in Make-To-Order flows)\n" +" * Waiting Availability: still waiting for the availability of products\n" +" * Partially Available: some products are available and reserved\n" +" * Ready to Transfer: products reserved, simply waiting for confirmation.\n" +" * Transferred: has been processed, can't be modified or cancelled anymore\n" +" * Cancelled: has been cancelled, can't be confirmed anymore" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_state +msgid "" +" * The 'Draft' status is used when a user is encoding a new and unconfirmed " +"Invoice.\n" +" * The 'Pro-forma' status is used when the invoice does not have an invoice " +"number.\n" +" * The 'Open' status is used when user creates invoice, an invoice number is " +"generated. It stays in the open status till the user pays the invoice.\n" +" * The 'Paid' status is set automatically when the invoice is paid. Its " +"related journal entries may or may not be reconciled.\n" +" * The 'Cancelled' status is used when user cancel invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_count +msgid "# Product Variants" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_product_count +msgid "# Products" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sales_count +msgid "# Sales" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_count +msgid "# of Invoices" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_count +msgid "# of Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_magento_order_id msgid "'order_id' field in Magento" -msgstr "Campo 'order_id' en Magento" +msgstr "" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form msgid "(recompute)" -msgstr "(recomputar)" +msgstr "" #. module: connector_magento #: sql_constraint:magento.account.invoice:0 @@ -36,7 +89,7 @@ msgstr "" #. module: connector_magento #: sql_constraint:magento.backend:0 msgid "A backend with the same sale prefix already exists" -msgstr "Un backend con el mismo prefijo de ventas ya existe" +msgstr "" #. module: connector_magento #: sql_constraint:magento.account.invoice:0 sql_constraint:magento.address:0 @@ -44,1239 +97,4325 @@ msgstr "Un backend con el mismo prefijo de ventas ya existe" #: sql_constraint:magento.product.product:0 #: sql_constraint:magento.res.partner:0 #: sql_constraint:magento.res.partner.category:0 -#: sql_constraint:magento.sale.order:0 -#: sql_constraint:magento.sale.order.line:0 +#: sql_constraint:magento.sale.order:0 sql_constraint:magento.sale.order.line:0 #: sql_constraint:magento.stock.picking:0 sql_constraint:magento.store:0 #: sql_constraint:magento.storeview:0 sql_constraint:magento.website:0 msgid "A binding already exists with the same Magento ID." msgstr "" #. module: connector_magento -#: sql_constraint:magento.address:0 -msgid "A partner address can only have one binding by backend." +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_type +msgid "" +"A category of the view type is a virtual category that can be used as the " +"parent of another category to create a hierarchical structure." msgstr "" #. module: connector_magento -#: help:magento.backend,sale_prefix:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_sale msgid "" -"A prefix put before the name of imported sales orders.\n" -"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, will be named 'mag-100000692' in OpenERP." -msgstr "Un prefijo es insertado antes del nombre de los pedidos de venta importados\nPor ejemplo, si el prefijo es 'mag-', el pedido de venta 100000692 en magento, se renombrara a 'mag-100000692' en OpenERP" +"A description of the Product that you want to communicate to your customers. " +"This description will be copied to every Sale Order, Delivery Order and " +"Customer Invoice/Refund" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "API" -msgstr "API" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_purchase +msgid "" +"A description of the Product that you want to communicate to your vendors. " +"This description will be copied to every Purchase Order, Receipt and Vendor " +"Bill/Refund." +msgstr "" #. module: connector_magento -#: field:magento.address,is_magento_order_address:0 -msgid "Address from a Magento Order" -msgstr "Dirección desde un Pedido Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "" +"A parent sales order has been canceled on the backend and needs to be " +"canceled." +msgstr "" #. module: connector_magento -#: field:magento.backend,admin_location:0 -msgid "Admin Location" -msgstr "Dirección Admin" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_id +msgid "A parent sales order is a sales order replaced by this one." +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Advanced Configuration" -msgstr "Configuración avanzada" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "A parent sales order needs cancel" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:173 -#, python-format -msgid "Already exported" +#: sql_constraint:magento.address:0 +msgid "A partner address can only have one binding by backend." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:611 -#, python-format -msgid "Already imported" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description +msgid "" +"A precise description of the Product, used only for internal information " +"purposes." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:208 -#, python-format -msgid "Already up-to-date." +#: model:ir.model.fields,help:connector_magento.field_magento_backend_sale_prefix +msgid "" +"A prefix put before the name of imported sales orders.\n" +"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, " +"will be named 'mag-100000692' in Odoo." msgstr "" #. module: connector_magento -#: help:magento.res.partner,consider_as_company:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_type msgid "" -"An account imported with a 'company' in the billing address is considered as a company.\n" -" The partner takes the name of the company and is not merged with the billing address." -msgstr "Una cuenta importada con compañia en la dirección de facturación sera considerada como una empresa\n El partner adquiere el nombre de la compañia y no se fusionada con la dirección de facturación." +"A stockable product is a product for which you manage stock. The \"Inventory" +"\" app has to be installed.\n" +"A consumable product, on the other hand, is a product for which stock is not " +"managed.\n" +"A service is a non-material product you provide.\n" +"A digital content is a non-material product you sell online. The files " +"attached to the products are the one that are sold on the e-commerce such as " +"e-books, music, pictures,... The \"Digital Product\" module has to be " +"installed." +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_backend -msgid "Backends" -msgstr "Backends" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "API" +msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_password:0 -msgid "Basic Auth. Password" -msgstr "Contraseña Auth. Básica" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_account_id +msgid "Account" +msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_username:0 -msgid "Basic Auth. Username" -msgstr "Usuario Auth. Basica" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "Account Payable" +msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_password:0 -msgid "Basic access authentication web server side password" -msgstr "Contraseña acceso autentificación básica en el acceso web" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "Account Receivable" +msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_username:0 -msgid "Basic access authentication web server side username" -msgstr "Usuario acceso autentificación básica en el acceso web" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date +msgid "Accounting Date" +msgstr "" #. module: connector_magento -#: field:res.partner,birthday:0 -msgid "Birthday" -msgstr "Fecha de nacimiento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction +msgid "Action Needed" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_bank_account_required msgid "" -"By clicking on the buttons,\n" -" you will initiate the synchronizations\n" -" with Magento.\n" -" Note that the import or exports\n" -" won't be done directly,\n" -" they will create 'Jobs'\n" -" executed as soon as possible." -msgstr "Haciendo clic en los botones,\n se iniciaran las sincronizaciones\n con Magento.\n Tenga en cuenta que las importaciones/exportaciones\n no se hacen directamente,\n sino que se crean 'Trabajos'\n que son ejecutados en cuanto sea posible." +"Activate this option if this payment method requires you to know the bank " +"account number of your customer or supplier." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:180 -#, python-format -msgid "" -"Canceled: the delivery order does not contain lines from the original sale " -"order." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_active +msgid "Active" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_delivery_carrier -msgid "Carrier" -msgstr "Transportista" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_comment +msgid "Additional Information" +msgstr "" #. module: connector_magento -#: help:magento.storeview,no_sales_order_sync:0 -msgid "" -"Check if the storeview is active in Magento but its sales orders should not " -"be imported." -msgstr "Comprueba si la vista tienda esta activa en Magento pero los pedidos de venta no serán importados" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_type +msgid "Address Type" +msgstr "" #. module: connector_magento -#: help:magento.product.product,no_stock_sync:0 -msgid "Check this to exclude the product from stock synchronizations." -msgstr "Marca esto para excluir el producto de la sincronización de stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_magento_order_address +msgid "Address from a Magento Order" +msgstr "" #. module: connector_magento -#: help:magento.backend,product_stock_field_id:0 -msgid "" -"Choose the field of the product which will be used for stock inventory updates.\n" -"If empty, Quantity Available is used." -msgstr "Choose the field of the product which will be used for stock inventory updates.\nIf empty, Quantity Available is used." +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_admin_location +msgid "Admin Location" +msgstr "" #. module: connector_magento -#: field:magento.storeview,code:0 field:magento.website,code:0 -msgid "Code" -msgstr "Código" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Advanced Configuration" +msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,company:0 -msgid "Company" -msgstr "Compañía" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_all_qty_delivered +msgid "All quantities delivered" +msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Complete" -msgstr "Completo" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "Allow moving packs" +msgstr "" #. module: connector_magento -#: field:magento.product.product,magento_qty:0 -msgid "Computed Quantity" -msgstr "Computed Quantity" +#: code:addons/connector_magento/models/stock_picking/exporter.py:69 +#, python-format +msgid "Already exported" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_connector_config_settings -msgid "Connector Configuration" -msgstr "Configuración Conector" +#: code:addons/connector_magento/models/sale_order/importer.py:368 +#, python-format +msgid "Already imported" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,consider_as_company:0 -msgid "Considered as company" -msgstr "Considerada como compañia" +#: code:addons/connector_magento/components/importer.py:198 +#, python-format +msgid "Already up-to-date." +msgstr "" #. module: connector_magento -#: view:payment.method:connector_magento.payment_method_view_form -msgid "Create invoice on" -msgstr "Crear factura en" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual +msgid "Amount Due" +msgstr "" #. module: connector_magento -#: field:magento.store,create_invoice_on:0 -#: field:payment.method,create_invoice_on:0 -msgid "Create invoice on action" -msgstr "Crear factura en acción" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Amount Due in Company Currency" +msgstr "" #. module: connector_magento -#: field:magento.address,created_at:0 -#: field:magento.product.product,created_at:0 -#: field:magento.res.partner,created_at:0 -msgid "Created At (on Magento)" -msgstr "Creado a las (en Magento)" - -#. module: connector_magento -#: field:magento.account.invoice,create_uid:0 -#: field:magento.address,create_uid:0 field:magento.backend,create_uid:0 -#: field:magento.product.category,create_uid:0 -#: field:magento.product.product,create_uid:0 -#: field:magento.res.partner,create_uid:0 -#: field:magento.res.partner.category,create_uid:0 -#: field:magento.sale.order,create_uid:0 -#: field:magento.sale.order.line,create_uid:0 -#: field:magento.stock.picking,create_uid:0 field:magento.store,create_uid:0 -#: field:magento.storeview,create_uid:0 field:magento.website,create_uid:0 -msgid "Created by" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_signed +msgid "Amount Due in Invoice Currency" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,create_date:0 -#: field:magento.address,create_date:0 field:magento.backend,create_date:0 -#: field:magento.product.category,create_date:0 -#: field:magento.product.product,create_date:0 -#: field:magento.res.partner,create_date:0 -#: field:magento.res.partner.category,create_date:0 -#: field:magento.sale.order,create_date:0 -#: field:magento.sale.order.line,create_date:0 -#: field:magento.stock.picking,create_date:0 field:magento.store,create_date:0 -#: field:magento.storeview,create_date:0 field:magento.website,create_date:0 -msgid "Created on" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_consider_as_company +msgid "" +"An account imported with a 'company' in the billing address is considered as " +"a company.\n" +" The partner takes the name of the company and is not merged with the " +"billing address." msgstr "" #. module: connector_magento -#: field:magento.backend,use_custom_api_path:0 -msgid "Custom Api Path" -msgstr "Directorio Personalizado Api" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_related_project_id +msgid "Analytic Account" +msgstr "" #. module: connector_magento -#: field:magento.address,is_default_billing:0 -msgid "Default Invoice" -msgstr "Factura por defecto" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_analytic_tag_ids +msgid "Analytic Tags" +msgstr "" #. module: connector_magento -#: field:magento.backend,default_lang_id:0 -msgid "Default Language" -msgstr "Idioma por defecto" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_account_analytic_id +msgid "Analytic account" +msgstr "" #. module: connector_magento -#: field:magento.backend,default_category_id:0 -msgid "Default Product Category" -msgstr "Categoría Producto por Defecto" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_value_ids +msgid "Attributes" +msgstr "" #. module: connector_magento -#: field:magento.address,is_default_shipping:0 -msgid "Default Shipping" -msgstr "Forma Envio Por Defecto" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_workflow_process_id +msgid "Automatic Workflow" +msgstr "" #. module: connector_magento -#: field:magento.product.category,description:0 -msgid "Description" -msgstr "Descripción" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backorder_id +msgid "Back Order of" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Do Not Manage Stock" -msgstr "No se controla stock" +#: model:ir.ui.menu,name:connector_magento.menu_magento_backend +msgid "Backends" +msgstr "" #. module: connector_magento -#: help:magento.store,send_invoice_paid_mail:0 -msgid "" -"Does the invoice export/creation should send an email notification on " -"Magento side?" -msgstr "La creación/exportación de la factura debe enviar una notificación por email desde Magento?" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_account_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_account_count +msgid "Bank" +msgstr "Banco" #. module: connector_magento -#: help:magento.store,send_picking_done_mail:0 -msgid "" -"Does the picking export/creation should send an email notification on " -"Magento side?" -msgstr "Does the picking export/creation should send an email notification on Magento side?" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_bank_id +msgid "Bank Account" +msgstr "Cuenta bancaria" #. module: connector_magento -#: field:magento.res.partner,emailid:0 -msgid "E-mail address" -msgstr "E-mail" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_bank_id +msgid "" +"Bank Account Number to which the invoice will be paid. A Company bank " +"account if this is a Customer Invoice or Vendor Refund, otherwise a Partner " +"bank account number." +msgstr "" #. module: connector_magento -#: field:magento.storeview,enabled:0 -msgid "Enabled" -msgstr "Activado" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_bank_account_required +msgid "Bank Account Required" +msgstr "Cuenta bancaria obligatoria" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_export_partner:0 -msgid "Export Partners to Magento (experimental)" -msgstr "Exportar Empresas a Magento (experimental)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_ids +msgid "Banks" +msgstr "Bancos" #. module: connector_magento -#: field:delivery.carrier,magento_export_tracking:0 -msgid "Export tracking numbers" -msgstr "Exportar Números de Seguimiento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_barcode +msgid "Barcode" +msgstr "Código de barras" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Extensions" -msgstr "Extensiones" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_list_price +msgid "" +"Base price to compute the customer price. Sometimes called the catalog price." +msgstr "" #. module: connector_magento -#: field:magento.res.partner,guest_customer:0 -msgid "Guest Customer" -msgstr "Cliente Anónimo" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic Auth. Password" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "HTTP Authentication" -msgstr "Autentificación HTTP" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic Auth. Username" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,id:0 field:magento.address,id:0 -#: field:magento.backend,id:0 field:magento.binding,id:0 -#: field:magento.product.category,id:0 field:magento.product.product,id:0 -#: field:magento.res.partner,id:0 field:magento.res.partner.category,id:0 -#: field:magento.sale.order,id:0 field:magento.sale.order.line,id:0 -#: field:magento.stock.picking,id:0 field:magento.store,id:0 -#: field:magento.storeview,id:0 field:magento.website,id:0 -msgid "ID" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic access authentication web server side password" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,magento_id:0 -#: field:magento.address,magento_id:0 field:magento.binding,magento_id:0 -#: field:magento.product.category,magento_id:0 -#: field:magento.product.product,magento_id:0 -#: field:magento.res.partner,magento_id:0 -#: field:magento.res.partner.category,magento_id:0 -#: field:magento.sale.order,magento_id:0 -#: field:magento.sale.order.line,magento_id:0 -#: field:magento.stock.picking,magento_id:0 field:magento.store,magento_id:0 -#: field:magento.storeview,magento_id:0 field:magento.website,magento_id:0 -msgid "ID on Magento" -msgstr "ID en Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic access authentication web server side username" +msgstr "" #. module: connector_magento -#: help:magento.backend,default_category_id:0 -msgid "" -"If a default category is selected, products imported without a category will" -" be linked to it." -msgstr "If a default category is selected, products imported without a category will be linked to it." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image +msgid "Big-sized image" +msgstr "" #. module: connector_magento -#: help:magento.backend,default_lang_id:0 -msgid "" -"If a default language is selected, the records will be imported in the translation of this language.\n" -"Note that a similar configuration exists for each storeview." -msgstr "If a default language is selected, the records will be imported in the translation of this language.\nNote that a similar configuration exists for each storeview." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_birthday +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_users_birthday +msgid "Birthday" +msgstr "Fecha de nacimiento" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders" -msgstr "Importar" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_bounce +msgid "Bounce" +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders since" -msgstr "Importar Pedidos Venta desde" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_bulk +msgid "Bulk Weight" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import all customer groups" -msgstr "Importar todos los grupos de clientes" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "" +"By clicking on the buttons,\n" +" you will initiate the synchronizations\n" +" with Magento.\n" +" Note that the import or exports\n" +" won't be done directly,\n" +" they will create 'Jobs'\n" +" executed as soon as possible." +msgstr "" #. module: connector_magento -#: field:magento.backend,import_categories_from_date:0 -msgid "Import categories from date" -msgstr "Importar categorías desde fecha" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered_updateable +msgid "Can Edit Delivered" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import in background" -msgstr "Importar en segundo plano" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_purchase_ok +msgid "Can be Purchased" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import partners from all websites" -msgstr "Importar empresas de todos los sitios web" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_rental +msgid "Can be Rent" +msgstr "Se puede alquilar" #. module: connector_magento -#: field:magento.website,import_partners_from_date:0 -msgid "Import partners from date" -msgstr "Importar empresas desde fecha" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_ok +msgid "Can be Sold" +msgstr "Se puede vender" #. module: connector_magento -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import partners since" -msgstr "Importar empresas desde" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Cancel" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products categories since" -msgstr "Importar categorias productos desde" +#: code:addons/connector_magento/models/sale_order/common.py:114 +#, python-format +msgid "Cancel sales order %s" +msgstr "" #. module: connector_magento -#: field:magento.backend,import_products_from_date:0 -msgid "Import products from date" -msgstr "Importar productos desde fecha" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_canceled_in_backend +msgid "Canceled in backend" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products since" -msgstr "Importar productos desde" +#: code:addons/connector_magento/models/stock_picking/exporter.py:76 +#, python-format +msgid "" +"Canceled: the delivery order does not contain lines from the original sale " +"order." +msgstr "" #. module: connector_magento -#: field:magento.storeview,import_orders_from_date:0 -msgid "Import sale orders from date" -msgstr "Importar pedidos venta desde fecha" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_cancellation_resolved +msgid "Cancellation from the backend resolved" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import sales orders from all store views" -msgstr "Importar ordenes de ventas de todas las vistas de tienda" +#: model:ir.model,name:connector_magento.model_delivery_carrier +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_id +msgid "Carrier" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Imports" -msgstr "Importaciones" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_from_categ_ids +msgid "Category Routes" +msgstr "" #. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Informations" -msgstr "Informaciones" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_type +msgid "Category Type" +msgstr "" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form -msgid "Inventory Options" -msgstr "Opciones Inventario" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_channel_ids +msgid "Channels" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_account_invoice -#: field:magento.account.invoice,openerp_id:0 -msgid "Invoice" -msgstr "Factura" +#: model:ir.model.fields,help:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_is_company +msgid "Check if the contact is a company, otherwise it is a person" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/invoice.py:122 -#: code:addons/connector_magento/tests/test_export_invoice.py:225 -#, python-format -msgid "Invoice Created" +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "" +"Check if the storeview is active in Magento but its sales orders should not " +"be imported." msgstr "" #. module: connector_magento -#: field:magento.storeview,lang_id:0 -msgid "Language" -msgstr "Idioma" - -#. module: connector_magento -#: field:magento.account.invoice,write_uid:0 field:magento.address,write_uid:0 -#: field:magento.backend,write_uid:0 -#: field:magento.product.category,write_uid:0 -#: field:magento.product.product,write_uid:0 -#: field:magento.res.partner,write_uid:0 -#: field:magento.res.partner.category,write_uid:0 -#: field:magento.sale.order,write_uid:0 -#: field:magento.sale.order.line,write_uid:0 -#: field:magento.stock.picking,write_uid:0 field:magento.store,write_uid:0 -#: field:magento.storeview,write_uid:0 field:magento.website,write_uid:0 -msgid "Last Updated by" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Check the existance of quants linked to this picking" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,write_date:0 -#: field:magento.address,write_date:0 field:magento.backend,write_date:0 -#: field:magento.product.category,write_date:0 -#: field:magento.product.product,write_date:0 -#: field:magento.res.partner,write_date:0 -#: field:magento.res.partner.category,write_date:0 -#: field:magento.sale.order,write_date:0 -#: field:magento.sale.order.line,write_date:0 -#: field:magento.stock.picking,write_date:0 field:magento.store,write_date:0 -#: field:magento.storeview,write_date:0 field:magento.website,write_date:0 -msgid "Last Updated on" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Check the existence of pack operation on the picking" msgstr "" #. module: connector_magento -#: help:magento.product.product,magento_qty:0 -msgid "Last computed quantity to send on Magento." -msgstr "Ultima cantidad computada enviada a Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer +msgid "Check this box if this contact is a customer." +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,sync_date:0 field:magento.address,sync_date:0 -#: field:magento.binding,sync_date:0 -#: field:magento.product.category,sync_date:0 -#: field:magento.product.product,sync_date:0 -#: field:magento.res.partner,sync_date:0 -#: field:magento.res.partner.category,sync_date:0 -#: field:magento.sale.order,sync_date:0 -#: field:magento.sale.order.line,sync_date:0 -#: field:magento.stock.picking,sync_date:0 field:magento.store,sync_date:0 -#: field:magento.storeview,sync_date:0 field:magento.website,sync_date:0 -msgid "Last synchronization date" -msgstr "Fecha última sincronización" +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier +msgid "" +"Check this box if this contact is a vendor. If it's not checked, purchase " +"people will not see it when encoding a purchase order." +msgstr "" #. module: connector_magento -#: field:magento.backend,location:0 -msgid "Location" -msgstr "Localización" +#: model:ir.model.fields,help:connector_magento.field_magento_address_employee +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_employee +msgid "Check this box if this contact is an Employee." +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_root -#: view:payment.method:connector_magento.payment_method_view_form -#: view:res.partner.category:connector_magento.view_partner_category_form -msgid "Magento" -msgstr "Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_no_stock_sync +msgid "Check this to exclude the product from stock synchronizations." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_address -#: view:magento.address:connector_magento.view_magento_address_form -#: view:magento.address:connector_magento.view_magento_address_tree -msgid "Magento Address" -msgstr "Dirección Magento" +#: code:addons/connector_magento/models/magento_backend/common.py:234 +#, python-format +msgid "" +"Check your configuration, we can't get the data. Here is the error:\n" +"%s" +msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_address_bind_ids:0 -msgid "Magento Address Bindings" -msgstr "Magento Address Bindings" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_child_id +msgid "Child Categories" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_backend -#: field:magento.account.invoice,backend_id:0 -#: field:magento.address,backend_id:0 -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.backend:connector_magento.view_magento_backend_tree -#: field:magento.binding,backend_id:0 -#: field:magento.product.category,backend_id:0 -#: field:magento.product.product,backend_id:0 -#: field:magento.res.partner,backend_id:0 -#: field:magento.res.partner.category,backend_id:0 -#: field:magento.sale.order,backend_id:0 -#: field:magento.sale.order.line,backend_id:0 -#: field:magento.stock.picking,backend_id:0 field:magento.store,backend_id:0 -#: field:magento.storeview,backend_id:0 field:magento.website,backend_id:0 -msgid "Magento Backend" -msgstr "Magento Backend" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_child_ids +msgid "Child Tags" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_backend -msgid "Magento Backends" -msgstr "Magento Backends" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_product_stock_field_id +msgid "" +"Choose the field of the product which will be used for stock inventory " +"updates.\n" +"If empty, Quantity Available is used." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_binding -#: model:ir.model,name:connector_magento.model_magento_res_partner_category -msgid "Magento Binding (abstract)" -msgstr "Magento Binding (abstract)" - -#. module: connector_magento -#: view:account.invoice:connector_magento.view_invoice_magento_form -#: field:account.invoice,magento_bind_ids:0 -#: view:product.category:connector_magento.view_product_category_form -#: field:product.category,magento_bind_ids:0 -#: view:product.product:connector_magento.product_normal_form_view -#: field:product.product,magento_bind_ids:0 -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_bind_ids:0 -#: field:res.partner.category,magento_bind_ids:0 -#: field:sale.order,magento_bind_ids:0 -#: field:sale.order.line,magento_bind_ids:0 -#: view:stock.picking:connector_magento.view_stock_picking_out_magento_form -#: field:stock.picking,magento_bind_ids:0 -msgid "Magento Bindings" -msgstr "Magento Bindings" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_city +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_city +msgid "City" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_code:0 -msgid "Magento Carrier Code" -msgstr "Modo de Envio Magento" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Close" +msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_child_ids:0 -msgid "Magento Child Categories" -msgstr "Subcategorias Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_code +msgid "Code" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Magento Configuration" -msgstr "Magento Configuration" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_color +msgid "Color Index" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_stock_picking -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_form -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_tree -msgid "Magento Delivery Order" -msgstr "Albaran Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_partner_id +msgid "Commercial Entity" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,group_id:0 -msgid "Magento Group (Category)" -msgstr "Grupo Magento (Categoría)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref_company_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref_company_ids +msgid "Companies that refers to partner" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_account_invoice -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_form -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_tree -msgid "Magento Invoice" -msgstr "Factura Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_company_id +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_res_users_company +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Company" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_order_id:0 -msgid "Magento Order ID" -msgstr "Id Pedido Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_currency_id +msgid "Company Currency" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_order_line_ids:0 -msgid "Magento Order Lines" -msgstr "Lineas Pedido Venta Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_name +msgid "Company Name" +msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_parent_id:0 -msgid "Magento Parent Category" -msgstr "Categoría Padre Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_company_name +msgid "Company Name Entity" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_res_partner -#: field:magento.address,magento_partner_id:0 -#: view:magento.res.partner:connector_magento.view_magento_res_partner_form -#: view:magento.res.partner:connector_magento.view_magento_res_partner_tree -msgid "Magento Partner" -msgstr "Empresa Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_type +msgid "Company Type" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_product -#: view:magento.product.product:connector_magento.view_magento_product_form -#: view:magento.product.product:connector_magento.view_magento_product_tree -msgid "Magento Product" -msgstr "Producto Magento" +#: selection:magento.stock.picking,picking_method:0 +msgid "Complete" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_category -#: view:magento.product.category:connector_magento.view_magento_product_category_form -#: view:magento.product.category:connector_magento.view_magento_product_category_tree -msgid "Magento Product Category" -msgstr "Categoría Producto Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contact_address +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contact_address +msgid "Complete Address" +msgstr "" #. module: connector_magento -#: field:magento.product.product,product_type:0 -msgid "Magento Product Type" -msgstr "Tipo Producto Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date_done +msgid "Completion Date of Transfer" +msgstr "" #. module: connector_magento -#: field:magento.backend,product_binding_ids:0 -#: field:magento.website,product_binding_ids:0 -msgid "Magento Products" -msgstr "Productos Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_qty +msgid "Computed Quantity" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order -#: field:magento.account.invoice,magento_order_id:0 -#: field:magento.sale.order.line,magento_order_id:0 -#: field:magento.stock.picking,magento_order_id:0 -msgid "Magento Sale Order" -msgstr "Pedido Venta Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_confirmation_date +msgid "Confirmation Date" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order_line -msgid "Magento Sale Order Line" -msgstr "Línea Pedido Venta Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_consider_as_company +msgid "Considered as company" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_store -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.store:connector_magento.view_magento_store_tree -msgid "Magento Store" -msgstr "Tienda Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_child_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_child_ids +msgid "Contacts" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_store -msgid "Magento Stores" -msgstr "Tiendas Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contracts_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contracts_count +msgid "Contracts" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_storeview -#: field:magento.sale.order,storeview_id:0 -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.storeview:connector_magento.view_magento_storeview_tree -msgid "Magento Storeview" -msgstr "Vista Tienda Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_standard_price +msgid "Cost" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview -msgid "Magento Storeviews" -msgstr "Vista Tienda Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_cost_method +msgid "Cost method" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_tracking_title:0 -msgid "Magento Tracking Title" -msgstr "Magento Tracking Title" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_standard_price +msgid "" +"Cost of the product template used for standard stock valuation in accounting " +"and used as a base price on purchase orders. Expressed in the default unit " +"of measure of the product." +msgstr "" #. module: connector_magento -#: field:magento.res.partner,taxvat:0 -msgid "Magento VAT" -msgstr "Impuesto Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_cost_method +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_cost_method +msgid "Costing Method" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_website -#: field:magento.address,website_id:0 field:magento.res.partner,website_id:0 -#: field:magento.store,website_id:0 -#: view:magento.website:connector_magento.view_magento_website_form -#: view:magento.website:connector_magento.view_magento_website_tree -msgid "Magento Website" -msgstr "Sitio Web Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_count +msgid "Count Payment Token" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_website -msgid "Magento Websites" -msgstr "Sitio Web Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_bounce +msgid "Counter of the number of bounced emails for this contact" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1079 -#, python-format -msgid "Magento sales order is already in state %s" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_country_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_country_id +msgid "Country" msgstr "" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Magentoerpconnect" -msgstr "Magentoerpconnect" +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +msgid "Create invoice on" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Main Configuration" -msgstr "Configuración Principal" +#: model:ir.model.fields,field_description:connector_magento.field_account_payment_mode_create_invoice_on +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_invoice_on +msgid "Create invoice on action" +msgstr "" #. module: connector_magento -#: field:magento.product.product,backorders:0 -msgid "Manage Inventory Backorders" -msgstr "Manage Inventory Backorders" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_created_at +msgid "Created At (on Magento)" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Manage Stock" -msgstr "Gestionar Stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_uid +msgid "Created by" +msgstr "" #. module: connector_magento -#: field:magento.product.product,manage_stock:0 -msgid "Manage Stock Level" -msgstr "Gestión Nivel Stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_date +msgid "Created on" +msgstr "" #. module: connector_magento -#: field:magento.backend,name:0 field:magento.store,name:0 -#: field:magento.storeview,name:0 field:magento.website,name:0 -msgid "Name" -msgstr "Nombre" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date +msgid "Creation Date" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,newsletter:0 -msgid "Newsletter" -msgstr "Boletín" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date +msgid "Creation Date, usually the time of the order" +msgstr "" #. module: connector_magento -#: field:magento.storeview,no_sales_order_sync:0 -msgid "No Sales Order Synchronization" -msgstr "Sin sincronización pedidos de venta" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit_limit +msgid "Credit Limit" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "No Sell" -msgstr "No Vender" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_currency_id +msgid "Currency" +msgstr "" #. module: connector_magento -#: field:magento.product.product,no_stock_sync:0 -msgid "No Stock Synchronization" -msgstr "Sin sincronización de stock" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_qty_available +msgid "" +"Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"stored in the Stock Location of the Warehouse of this Shop, or any of its " +"children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/related_action.py:55 -#, python-format -msgid "" -"No admin URL configured on the backend or no admin path is defined for this " -"record." +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_custom_api_path +msgid "Custom Api Path" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:83 -#, python-format -msgid "No tracking number to send." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_id +msgid "Customer" msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,notes:0 -msgid "Notes" -msgstr "Notas" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_delay +msgid "Customer Lead Time" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:407 -#: code:addons/connector_magento/unit/export_synchronizer.py:412 -#, python-format -msgid "Nothing to export." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_customer +msgid "Customer Location" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "" -"Once imported,\n" -" some types of records,\n" -" like the products or categories,\n" -" need a manual review.\n" -" You will find the list\n" -" of the new records to review\n" -" in the menu 'Connectors > Checkpoint'." -msgstr "Once imported,\n some types of records,\n like the products or categories,\n need a manual review.\n You will find the list\n of the new records to review\n in the menu 'Connectors > Checkpoint'." - -#. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Options" -msgstr "Opciones" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Customer Payment Mode" +msgstr "" #. module: connector_magento -#: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 -msgid "Paid" -msgstr "Pagado/a" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "Customer Payment Terms" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_parent_id:0 -msgid "Parent Magento Order" -msgstr "Pedido Magento Padre" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_partner_ref +msgid "Customer Ref" +msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Partial" -msgstr "Parcial" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_client_order_ref +msgid "Customer Reference" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner -#: field:magento.address,openerp_id:0 field:magento.res.partner,openerp_id:0 -msgid "Partner" -msgstr "Empresa" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_taxes_id +msgid "Customer Taxes" +msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,openerp_id:0 -msgid "Partner Category" -msgstr "Categoría de empresa" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_date +msgid "Date" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner_category -msgid "Partner Tags" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date_done +msgid "Date of Transfer" msgstr "" #. module: connector_magento -#: field:magento.backend,password:0 -msgid "Password" -msgstr "Contraseña" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_last_post +msgid "Date of the last message posted on the record." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_payment_method -msgid "Payment Method" -msgstr "Método de pago" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_confirmation_date +msgid "Date on which the sale order is confirmed." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_stock_picking -msgid "Picking List" -msgstr "Albarán" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_billing +msgid "Default Invoice" +msgstr "" #. module: connector_magento -#: field:magento.stock.picking,picking_method:0 -msgid "Picking Method" -msgstr "Método Picking" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_lang_id +msgid "Default Language" +msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_pricing:0 -msgid "Prices are managed in OpenERP with pricelists" -msgstr "Precios son gestionados en OpenERP con Tarifas" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_owner_id +msgid "Default Owner" +msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_pricing:0 -msgid "" -"Prices are set in OpenERP and exported to Magento.\n" -"\n" -"This installs the module connector_magento_pricing." -msgstr "Prices are set in OpenERP and exported to Magento.\n\nThis installs the module connector_magento_pricing." +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_category_id +msgid "Default Product Category" +msgstr "" #. module: connector_magento -#: field:magento.storeview,catalog_price_tax_included:0 -msgid "Prices include tax" -msgstr "Precios incluyen impuestos" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_shipping +msgid "Default Shipping" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_product -#: field:magento.product.product,openerp_id:0 -msgid "Product" -msgstr "Producto" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_id +msgid "Default Unit of Measure used for all stock operation." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_category -#: field:magento.product.category,openerp_id:0 -msgid "Product Category" -msgstr "Categoría Producto" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_po_id +msgid "" +"Default Unit of Measure used for purchase orders. It must be in the same " +"category than the default unit of measure." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/delete_synchronizer.py:38 -#, python-format -msgid "Record %s deleted on Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_trust +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_trust +msgid "Degree of trust you have in this debtor" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:199 -#, python-format -msgid "Record does no longer exist in Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered +msgid "Delivered" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:414 -#, python-format -msgid "Record exported with ID %s on Magento." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_delivery_count +msgid "Delivery" msgstr "" #. module: connector_magento -#: field:magento.sale.order,openerp_id:0 -msgid "Sale Order" -msgstr "Pedido de Venta" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_shipping_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery Address" +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,openerp_id:0 -msgid "Sale Order Line" -msgstr "Línea Pedido Venta" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_customer_lead +msgid "Delivery Lead Time" +msgstr "" #. module: connector_magento -#: field:magento.backend,sale_prefix:0 -msgid "Sale Prefix" -msgstr "Prefijo Venta" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_carrier_id +msgid "Delivery Method" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1075 -#, python-format -msgid "Sale is not linked with a Magento sales order" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_count +msgid "Delivery Orders" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order -msgid "Sales Order" -msgstr "Pedidos de venta" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_type +msgid "Delivery Type" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order_line -msgid "Sales Order Line" -msgstr "Lineas Pedidos Venta" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_shipping_id +msgid "Delivery address for current invoice." +msgstr "" #. module: connector_magento -#: field:magento.storeview,section_id:0 -msgid "Sales Team" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery address for current sales order." msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0" -msgstr "Vendes Cantidad < 0" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_route_ids +msgid "" +"Depending on the modules installed, this will allow you to define the route " +"of the product: whether it will be bought, manufactured, MTO/MTS,..." +msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0 and Use Customer Notification" -msgstr "Vender cantidad z 0 y Usar Notificación Cliente" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_name +msgid "Description" +msgstr "" #. module: connector_magento -#: field:magento.store,send_invoice_paid_mail:0 -msgid "Send email notification on invoice validated/paid" -msgstr "Enviar email de notificación cuando se valida/paga factura" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_picking +msgid "Description on Picking" +msgstr "" #. module: connector_magento -#: field:magento.store,send_picking_done_mail:0 -msgid "Send email notification on picking done" -msgstr "Enviar email de notificación cuando sea realizado el picking" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_dest_id +msgid "Destination Location Zone" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:126 -#: code:addons/connector_magento/tests/test_export_picking.py:89 -#: code:addons/connector_magento/tests/test_export_picking.py:135 -#: code:addons/connector_magento/tests/test_export_picking.py:169 -#, python-format -msgid "Shipping Created" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_discount +msgid "Discount (%)" msgstr "" #. module: connector_magento -#: help:payment.method,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"If nothing is set, the option falls back to the same option on the Magento store related to the sales order." -msgstr "Se debe crear la factura en Magento cuando la factura es validad o pagada en OpenERP\nSi no se establece nada, funciona como este configurada la tienda relacionada al pedido de venta" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_display_name +msgid "Display Name" +msgstr "" #. module: connector_magento -#: help:magento.store,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"This only takes effect if the sales order's related payment method is not giving an option for this by itself. (See Payment Methods)" -msgstr "Se debe crear la factura en Magento cuando la factura es validad o pagada en OpenERP\nEsto solo tiene efecto si no se establece nada en al método de pago relacionado con el pedido de venta (Ver métodos de pago)" +#: selection:magento.product.product,manage_stock:0 +msgid "Do Not Manage Stock" +msgstr "" #. module: connector_magento -#: field:magento.storeview,sort_order:0 field:magento.website,sort_order:0 -msgid "Sort Order" -msgstr "Orden de Clasificación" +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "" +"Does the invoice export/creation should send an email notification on " +"Magento side?" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1072 -#, python-format -msgid "State %s is not exported." +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_picking_done_mail +msgid "" +"Does the picking export/creation should send an email notification on " +"Magento side?" msgstr "" #. module: connector_magento -#: field:magento.backend,product_stock_field_id:0 -msgid "Stock Field" -msgstr "Campo Stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_due +msgid "Due Date" +msgstr "" #. module: connector_magento -#: field:magento.stock.picking,openerp_id:0 -msgid "Stock Picking" -msgstr "Albaran" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_emailid +msgid "E-mail address" +msgstr "" #. module: connector_magento -#: field:magento.storeview,store_id:0 -msgid "Store" -msgstr "Tienda" +#: model:ir.model.fields,help:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_partner_share +msgid "" +"Either customer (no user), either shared user. Indicated the current partner " +"is a customer without access or with a limited access created for sharing " +"data." +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_store -#: view:magento.website:connector_magento.view_magento_website_form -#: field:magento.website,store_ids:0 -msgid "Stores" -msgstr "Tiendas" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email +msgid "Email" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview -#: view:magento.store:connector_magento.view_magento_store_form -#: field:magento.store,storeview_ids:0 -msgid "Storeviews" -msgstr "Vistas Tiendas" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_notify_email +msgid "Email Messages and Notifications" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Synchronize Metadata" -msgstr "Sincronizar Metadata" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_employee +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_employee +msgid "Employee" +msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,tax_class_id:0 -msgid "Tax Class ID" -msgstr "Tax Class ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_enabled +msgid "Enabled" +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,tax_rate:0 -msgid "Tax Rate" -msgstr "Impuesto" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_price +msgid "Estimated Delivery Price" +msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount -msgid "" -"The amount computed in OpenERP doesn't match with the amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." -msgstr "El importe calculado en OpenERP no coincide con el importe en Magento\n\nCausa:\nLos impuestos probablemente sean diferentes entre OpenERP y Magento. Una posición fiscal ha podido variar el precio final.\n\nSolución:\nCompruebe la configuración de los impuestos y las posiciones fiscales y modifiquelos si fuera necesario." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_exception_ids +msgid "Exceptions" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:80 -#, python-format -msgid "The carrier %s does not export tracking numbers." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_expense_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_expense_id +msgid "Expense Account" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/product.py:558 -#, python-format -msgid "" -"The configurable product is not imported in OpenERP, because only the simple" -" products are used in the sales orders." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_validity_date +msgid "Expiration Date" msgstr "" #. module: connector_magento -#: help:magento.backend,use_custom_api_path:0 -msgid "" -"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a" -" custom API path, in that case, the location has to be completed with the " -"custom API path " -msgstr "La ruta por defecto de la API es '/index.php/api/xmlrpc', Marca este cuadro si usas una ruta personalizada, en tal caso, rellenar el campo de la tura personalizada. " +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_export_tracking +msgid "Export tracking numbers" +msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount_tax -msgid "" -"The tax amount computed in OpenERP doesn't match with the tax amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." -msgstr "La cantidad de impuestos calculada en OpenERP no coincide con la cantidad de impuestos en Magento\n\nCausa:\nLos impuestos probablemente sean diferentes entre OpenERP y Magento. Una posición fiscal ha podido variar el precio final.\n\nSolución:\nCompruebe la configuración de los impuestos y las posiciones fiscales y modifiquelos si fuera necesario." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_ids +msgid "Extra categories" +msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_export_partner:0 -msgid "This installs the module connector_magento_export_partner." -msgstr "This installs the module connector_magento_export_partner." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_fax +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_fax +msgid "Fax" +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "" -"This option should respect the same\n" -" configuration as Magento. Pay\n" -" attention to the taxes on the products,\n" -" which should surely include prices when\n" -" this option is activated." +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_data +msgid "File" msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount -msgid "Total Amount differs from Magento" -msgstr "Importe Total Difiere de Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_name +msgid "File Name" +msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount_tax -msgid "Total Tax Amount differs from Magento" -msgstr "Total Impuestos difiere de Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_carrier_id +msgid "Fill this field if you plan to invoice the shipping based on picking." +msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount:0 -msgid "Total amount" -msgstr "Cantidad Total" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_firstname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_firstname +msgid "First name" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount_tax:0 -msgid "Total amount w. tax" -msgstr "Total w. impuesto" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_fiscal_position_id +msgid "Fiscal Position" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/magento_model.py:575 -#, python-format -msgid "Undefined" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_fiscal_position_id +msgid "Fiscal position" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Update" -msgstr "Actualizar" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_follower_ids +msgid "Followers" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Update all the products stock quantities" -msgstr "Actualizar el stock de todos los productos" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_channel_ids +msgid "Followers (Channels)" +msgstr "" #. module: connector_magento -#: field:magento.address,updated_at:0 -#: field:magento.product.product,updated_at:0 -#: field:magento.res.partner,updated_at:0 -msgid "Updated At (on Magento)" -msgstr "Updated At (on Magento)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_partner_ids +msgid "Followers (Partners)" +msgstr "" #. module: connector_magento -#: help:magento.backend,location:0 -msgid "Url to magento application" -msgstr "URL a la aplicación de magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_removal_strategy_id +msgid "Force Removal Strategy" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -#: selection:magento.product.product,manage_stock:0 -msgid "Use Default Config" -msgstr "Usar Configuración por defecto" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_virtual_available +msgid "Forecast Quantity" +msgstr "" #. module: connector_magento -#: field:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_email_formatted +msgid "Format email address \"Name \"" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email_formatted +msgid "Formatted Email" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Get" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_packaging_ids +msgid "" +"Gives the different ways to package the same product. This has no impact on " +"the picking order and is mainly used if you use the EDI module." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sequence +msgid "Gives the sequence order when displaying a product list" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_guest_customer +msgid "Guest Customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_hs_code +msgid "HS Code" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "HTTP Authentication" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_has_checkpoint +msgid "Has Checkpoint" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Has Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_has_scrap_move +msgid "Has Scrap Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_need_cancel +msgid "Has been canceled on the backend, need to be canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_has_outstanding +msgid "Has outstanding" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Has quants already reserved" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "Has unreconciled entries" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Here is the file with information read drom the backend:" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id_5804 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_id +msgid "ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_external_id +msgid "ID on Magento" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_im_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_im_status +msgid "IM Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_category_id +msgid "" +"If a default category is selected, products imported without a category will " +"be linked to it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_lang_id +msgid "" +"If a default language is selected, the records will be imported in the " +"translation of this language.\n" +"Note that a similar configuration exists for each storeview." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "" +"If checked, this shows the packs to be moved as a whole in the Operations " +"tab all the time, even if there was no entire pack reserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_opt_out +msgid "" +"If opt-out is checked, this contact has refused to receive emails for mass " +"mailing and marketing campaign. Filter 'Available for Mass Mailing' allows " +"users to filter the partners when performing mass mailing." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'. The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_team_id +msgid "" +"If set, sale team used notably for sales and assignations related to this " +"partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "" +"If specified, this fiscal position will be used to fill the field fiscal " +"position on the sale order created by the connector.The value can also be " +"specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_warehouse_id +msgid "" +"If specified, this warehouse will be used to load fill the field warehouse " +"(and company) on the sale order created by the connector.The value can also " +"be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_lang +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_lang +msgid "" +"If the selected language is loaded in the system, all documents related to " +"this contact will be printed in this language. If not, it will be English." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_website_is_multi_company +msgid "" +"If this flag is set, it is possible to choose warehouse at each level. When " +"import partner, ignore company_id if this flag is set." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_backorder_id +msgid "" +"If this shipment was split, then this field links to the shipment which " +"contains the already processed part." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_active +msgid "" +"If unchecked, it will allow you to hide the product without removing it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_payment_term_id +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. If you keep the payment term and the due " +"date empty, it means direct payment. The payment term may compute several " +"due dates, for example 50% now, 50% in one month." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_due +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. The payment term may compute several due " +"dates, for example 50% now and 50% in one month, but if you want to force a " +"due date, make sure that the payment term is not set on the invoice. If you " +"keep the payment term and the due date empty, it means direct payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_ignore_exception +msgid "Ignore Exceptions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image +msgid "Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image +msgid "" +"Image of the product variant (Big-sized image of product template if false). " +"It is automatically resized as a 1024x1024px image, with aspect ratio " +"preserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_medium +msgid "" +"Image of the product variant (Medium-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_small +msgid "" +"Image of the product variant (Small-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders since" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import all customer groups" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_categories_from_date +msgid "Import categories from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import in background" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import partners from all websites" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_import_partners_from_date +msgid "Import partners from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import partners since" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products categories since" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_products_from_date +msgid "Import products from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products since" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_import_orders_from_date +msgid "Import sale orders from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import sales orders from all store views" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Imports" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_income_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_income_id +msgid "Income Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_incoming_qty +msgid "Incoming" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_incoterms_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_incoterm +msgid "Incoterms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_incoterms_id +msgid "" +"Incoterms are series of sales terms. They are used to divide transaction " +"costs and responsibilities between buyer and seller and reflect state-of-the-" +"art transportation practices." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Informations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_default_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref +msgid "Internal Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_barcode +msgid "International Article Number used for product identification." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_incoterm +msgid "" +"International Commercial Terms are a series of predefined commercial terms " +"used in international transactions." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_inventory +msgid "Inventory Location" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +msgid "Inventory Options" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_valuation +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_valuation +msgid "Inventory Valuation" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_invoice +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn +msgid "Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice Address" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/account_invoice/exporter.py:26 +#, python-format +msgid "Invoice Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_invoice +msgid "Invoice Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_invoice_line_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_lines +msgid "Invoice Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_shipping_on_delivery +msgid "Invoice Shipping on Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_status +msgid "Invoice Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_refund_invoice_id +msgid "Invoice for which this invoice is the refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_invoiced +msgid "Invoiced" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_ids +msgid "Invoices" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_invoice_policy +msgid "Invoicing Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_is_multi_company +msgid "Is Backend Multi-Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_is_company +msgid "Is a Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer +msgid "Is a Customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_is_delivery +msgid "Is a Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier +msgid "Is a Vendor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reconciled +msgid "" +"It indicates that the invoice has been paid and the journal entry of the " +"invoice has been reconciled with one or several journal entries of payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_sent +msgid "It indicates that the invoice has been sent." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_move_type +msgid "It specifies goods to be deliver partially or all at once" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_function +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_function +msgid "Job Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_journal_id +msgid "Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_id +msgid "Journal Entry" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_name +msgid "Journal Entry Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_journal_item_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_journal_item_count +msgid "Journal Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_invoice +msgid "Keep empty to use the current date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date +msgid "Keep empty to use the invoice date." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_lang_id +msgid "Language" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_last_post +msgid "Last Message Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_address___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_store___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_website___last_update +msgid "Last Modified on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_date +msgid "Last Updated on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_magento_qty +msgid "Last computed quantity to send on Magento." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lastname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lastname +msgid "Last name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "" +"Last time the invoices & payments matching was performed for this partner. " +"It is set either if there's not at least an unreconciled debit and an " +"unreconciled credit or if you click the \"Done\" button." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "Latest Invoices & Payments Matching Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_launch_pack_operations +msgid "Launch Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_sequence +msgid "Layout Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_left +msgid "Left Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_left +msgid "Left parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_id +msgid "Link to the automatically generated Journal Items." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_location +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_location_id +msgid "Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_packaging_ids +msgid "Logistical Units" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.menu,name:connector_magento.menu_magento_root +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +#: model:ir.ui.view,arch_db:connector_magento.view_magento_delivery_carrier_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_category_form +msgid "Magento" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_address +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_tree +msgid "Magento Address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_address_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Magento Address Bindings" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_backend +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_backend_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_tree +msgid "Magento Backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_backend +msgid "Magento Backends" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_carrier_code +msgid "Magento Base Carrier Code" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding +msgid "Magento Binding (abstract)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_stock_picking_magento_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.product_normal_form_view +#: model:ir.ui.view,arch_db:connector_magento.view_invoice_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_sale_order_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_stock_picking_out_magento_form +msgid "Magento Bindings" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_code +msgid "Magento Carrier Code" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_child_ids +msgid "Magento Child Categories" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Magento Configuration" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_stock_picking +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_tree +msgid "Magento Delivery Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_group_id +msgid "Magento Group (Category)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_id +msgid "Magento Id" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_account_invoice +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_tree +msgid "Magento Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_id +msgid "Magento Order ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_line_ids +msgid "Magento Order Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_parent_id +msgid "Magento Parent Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_partner_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_tree +msgid "Magento Partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_product +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_tree +msgid "Magento Product" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_category +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_tree +msgid "Magento Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_type +msgid "Magento Product Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_binding_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_product_binding_ids +msgid "Magento Products" +msgstr "" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_rewards +#: model:product.template,name:connector_magento.product_product_rewards_product_template +msgid "Magento Rewards" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_order_id +msgid "Magento Sale Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order_line +msgid "Magento Sale Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_tree +msgid "Magento Sales Orders" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_tree +msgid "Magento Store" +msgstr "" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_store_credit +#: model:product.template,name:connector_magento.product_product_store_credit_product_template +msgid "Magento Store Credit" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_store +msgid "Magento Stores" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_storeview +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_storeview_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_tree +msgid "Magento Storeview" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview +msgid "Magento Storeviews" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_tracking_title +msgid "Magento Tracking Title" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_taxvat +msgid "Magento VAT" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_website_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_tree +msgid "Magento Website" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_website +msgid "Magento Websites" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_backend_id +msgid "Magento backend id" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_binding_model +msgid "Magento binding model" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:58 +#, python-format +msgid "Magento sales order is already in state %s" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Main Configuration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_main_exception_id +msgid "Main Exception" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backorders +msgid "Manage Inventory Backorders" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Manage Stock" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_manage_stock +msgid "Manage Stock Level" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_track_service +msgid "" +"Manually set quantities on order: Invoice based on the manually entered " +"quantity, without creating an analytic account.\n" +"Timesheets on contract: Invoice based on the tracked hours on the related " +"timesheet.\n" +"Create a task and track hours: Create a task on the sale order validation " +"and track the work hours." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_validity_date +msgid "" +"Manually set the expiration date of your quotation (offer), or it will set " +"the date automatically based on the template if online quotation is " +"installed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_max_date +msgid "Max. Expected Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_medium +msgid "Medium-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_medium +msgid "" +"Medium-sized image of this contact. It is automatically resized as a " +"128x128px image, with aspect ratio preserved. Use this field in form views " +"or some kanban views." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn_msg +msgid "Message for Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn_msg +msgid "Message for Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn_msg +msgid "Message for Sales Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn_msg +msgid "Message for Stock Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_ids +msgid "Messages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_orderpoint_ids +msgid "Minimum Stock Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_mobile +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_mobile +msgid "Mobile" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_name +msgid "Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_need_cancel +msgid "Need to be canceled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_newsletter +msgid "Newsletter" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "No Sales Order Synchronization" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "No Sell" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_no_stock_sync +msgid "No Stock Synchronization" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/queue_job/common.py:27 +#, python-format +msgid "" +"No admin URL configured on the backend or no admin path is defined for this " +"record." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:63 +#, python-format +msgid "No tracking number to send." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_product_ids +msgid "Non pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_notes +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_note +msgid "Notes" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:363 +#: code:addons/connector_magento/components/exporter.py:368 +#, python-format +msgid "Nothing to export." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_number +msgid "Number" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_number_of_packages +msgid "Number of Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_line_customer_lead +msgid "" +"Number of days between the order confirmation and the shipping of the " +"products to the customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "" +"Once imported,\n" +" some types of records,\n" +" like the products or categories,\n" +" need a manual review.\n" +" You will find the list\n" +" of the new records to review\n" +" in the menu 'Connectors > Checkpoint'." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_opt_out +msgid "Opt-Out" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Options" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_date_order +msgid "Order Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_order_line +msgid "Order Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_name +msgid "Order Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_state +msgid "Order Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_invoice_policy +msgid "" +"Ordered Quantity: Invoice based on the quantity the customer ordered.\n" +"Delivered Quantity: Invoiced based on the quantity the vendor delivered " +"(time or deliveries)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_outgoing_qty +msgid "Outgoing" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_outstanding_credits_debits_widget +msgid "Outstanding credits debits widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_owner_id +msgid "Owner" +msgstr "Propietario" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_pack_ids +msgid "Pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_package_ids +msgid "Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_packaging +msgid "Packaging" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 +#: selection:magento.store,create_invoice_on:0 +msgid "Paid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reconciled +msgid "Paid/Reconciled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_id +msgid "Parent Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_parent_id +msgid "Parent Magento Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_id +msgid "Parent Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_name +msgid "Parent name" +msgstr "" + +#. module: connector_magento +#: selection:magento.stock.picking,picking_method:0 +msgid "Partial" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_partner_id +msgid "Partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_odoo_id +msgid "Partner Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner_category +msgid "Partner Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_partner_ids +msgid "Partners" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_password +msgid "Password" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit_limit +msgid "Payable Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_mode_id +msgid "Payment Mode" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_payment_mode +msgid "Payment Modes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_move_line_ids +msgid "Payment Move Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference_type +msgid "Payment Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_term_id +msgid "Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_ids +msgid "Payment Tokens" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_ids +msgid "Payments" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payments_widget +msgid "Payments widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_phone +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_phone +msgid "Phone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_method +msgid "Picking Method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_id +msgid "Picking Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_ids +msgid "Picking associated to this sale" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_notify_email +msgid "" +"Policy to receive emails for new messages pushed to your personal Inbox:\n" +"- Never: no emails are sent\n" +"- All Messages: for every notification you receive in your Inbox" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price +msgid "Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce +msgid "Price Reduce" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxexcl +msgid "Price Reduce Tax excl" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxinc +msgid "Price Reduce Tax inc" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_item_ids +msgid "Pricelist Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_item_ids +msgid "Pricelist item ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_catalog_price_tax_included +msgid "Prices include tax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_id +msgid "Pricing/Primary Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_printed +msgid "Printed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_priority +msgid "Priority" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_priority +msgid "" +"Priority for this picking. Setting manually a value here would set it as " +"priority for all the moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_procurement_group_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_group_id +msgid "Procurement Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_procurement +msgid "Procurement Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_procurement_ids +msgid "Procurements" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_product +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_product_id +msgid "Product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_line_ids +msgid "Product Attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_category +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_odoo_id +msgid "Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_tmpl_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_tmpl_id +msgid "Product Template" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_type +msgid "Product Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_production +msgid "Production Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_ids +msgid "Products" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_delivery_type +msgid "Provider" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_purchase +msgid "Purchase Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_po_id +msgid "Purchase Unit of Measure" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_qty +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom_qty +msgid "Quantity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_qty_available +msgid "Quantity On Hand" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_incoming_qty +msgid "" +"Quantity of products that are planned to arrive.\n" +"In a context with a single Stock Location, this includes goods arriving to " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location with " +"'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_outgoing_qty +msgid "" +"Quantity of products that are planned to leave.\n" +"In a context with a single Stock Location, this includes goods leaving this " +"Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving the Stock " +"Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods leaving any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_queue_job +msgid "Queue Job" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_expense_policy +msgid "Re-Invoice Expenses" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Read Binding information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.magento_binding_backend_read_act_window +msgid "Read information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reception_count +msgid "Receipt" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "Recompute pack operation?" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/deleter.py:21 +#, python-format +msgid "Record %s deleted on Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/importer.py:189 +#, python-format +msgid "Record does no longer exist in Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:370 +#, python-format +msgid "Record exported with ID %s on Magento." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_name +msgid "Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_origin +msgid "Reference of the document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_origin +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_origin +msgid "Reference of the document that produced this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_name +msgid "Reference/Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_id +msgid "Related Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_ids +msgid "Related Packing Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_related_backorder_ids +msgid "Related backorders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Remaining amount due in the currency of the company." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_signed +msgid "Remaining amount due in the currency of the invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual +msgid "Remaining amount due." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/common.py:137 +#, python-format +msgid "Reopen sales order %s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_nbr_reordering_rules +msgid "Reordering Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_max_qty +msgid "Reordering max qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_min_qty +msgid "Reordering min qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_right +msgid "Right Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_right +msgid "Right parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_route_id +msgid "Route" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_route_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_ids +msgid "Routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_rule_group +msgid "Rule group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_sale +msgid "Sale Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_sale_id +msgid "Sale Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_odoo_id +msgid "Sale Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_sale_prefix +msgid "Sale Prefix" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_list_price +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_lst_price +msgid "Sale Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "Sale Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_workflow_process_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_workflow_process_id +msgid "Sale Workflow Process" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:54 +#, python-format +msgid "Sale is not linked with a Magento sales order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn +msgid "Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order_line +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn +msgid "Sales Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_team_id +msgid "Sales Team" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_salesman_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_user_id +msgid "Salesperson" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_min_date +msgid "Scheduled Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_min_date +msgid "" +"Scheduled time for the first part of the shipment to be processed. Setting " +"manually a value here would set it as expected date for all the stock moves." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_max_date +msgid "Scheduled time for the last part of the shipment to be processed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_id +msgid "Section" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_categ_id +msgid "Select category for the current product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Select the default payment mode for this customer." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Select the default payment mode for this supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_line_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_sale_warn +msgid "" +"Selecting the \"Warning\" option will notify user with the message, " +"Selecting \"Blocking Message\" will throw an exception with the message and " +"block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_self +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_self +msgid "Self" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0 and Use Customer Notification" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "Send email notification on invoice validated/paid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_picking_done_mail +msgid "Send email notification on picking done" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_sent +msgid "Sent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sequence +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_sequence +msgid "Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_removal_strategy_id +msgid "" +"Set a specific removal strategy that will be used regardless of the source " +"location for this product category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_partner_share +msgid "Share Partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_price +msgid "Shipping Cost" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:25 +#, python-format +msgid "Shipping Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_policy +msgid "Shipping Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_account_payment_mode_create_invoice_on +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"If nothing is set, the option falls back to the same option on the Magento " +"store related to the sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_create_invoice_on +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"This only takes effect if the sales order's related payment method is not " +"giving an option for this by itself. (See Payment Methods)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_type +msgid "Signup Token Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_valid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_valid +msgid "Signup Token is Valid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_url +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_url +msgid "Signup URL" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_expiration +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_expiration +msgid "Signup expiration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_token +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_token +msgid "Signup token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_small +msgid "Small-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_small +msgid "" +"Small-sized image of this contact. It is automatically resized as a 64x64px " +"image, with aspect ratio preserved. Use this field anywhere a small image is " +"required." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_sort_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_sort_order +msgid "Sort Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_origin +msgid "Source Document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_id +msgid "Source Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_account_analytic_id +msgid "Specific analytic account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "Specific fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_warehouse_id +msgid "Specific warehouse" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_ok +msgid "Specify if the product can be selected in a sales order line." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +" Average Price: The cost price is recomputed at each incoming " +"shipment and used for the product valuation.\n" +" Real Price: The cost price displayed is the price of the " +"last outgoing product (will be use in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +"Average Price: The cost price is recomputed at each incoming shipment and " +"used for the product valuation.\n" +"Real Price: The cost price displayed is the price of the last outgoing " +"product (will be used in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_hs_code +msgid "Standardized code for international shipping and goods declaration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_state_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_state_id +msgid "State" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:51 +#, python-format +msgid "State %s is not exported." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_state +msgid "Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_stock_field_id +msgid "Stock Field" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_input +msgid "Stock Input Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_journal +msgid "Stock Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_lines +msgid "Stock Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_output +msgid "Stock Output Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_odoo_id +msgid "Stock Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "Stock Valuation Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_move_ids +msgid "Stock move ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_quant_ids +msgid "Stock quant ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_store_id +msgid "Store" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_store_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Stores" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_store_id +msgid "Storeview" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_storeview_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +msgid "Storeviews" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street +msgid "Street" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street2 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street2 +msgid "Street2" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_subtotal +msgid "Subtotal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Supplier Payment Mode" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Synchronize Metadata" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_vat +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_vat +msgid "TIN" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_name +msgid "Tag Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id +msgid "Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_tax +msgid "Tax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_tax_class_id +msgid "Tax Class ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_vat +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_vat +msgid "" +"Tax Identification Number. Fill it if the company is subjected to taxes. " +"Used by the some of the legal statements." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_tax_line_ids +msgid "Tax Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_rate +msgid "Tax Rate" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax groups are used with some external system like Prestashop" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_id +msgid "Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_name +msgid "" +"Technical field holding the number given to the invoice, automatically set " +"when the invoice is validated then stored to set the same number again if " +"the invoice is cancelled, set to draft and re-validated." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_pricelist_id +msgid "" +"Technical field. Used for searching on pricelists, not stored in database." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_move_ids +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_quant_ids +msgid "Technical: used to compute quantities." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_note +msgid "Terms and conditions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_category_active +msgid "The active field allows you to hide the category without removing it." +msgstr "" + +#. module: connector_magento +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount +msgid "" +"The amount computed in Odoo doesn't match with the amount in Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_related_project_id +msgid "The analytic account related to a sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_delay +msgid "" +"The average delay in days between the confirmation of the customer order and " +"the delivery of the finished products. It's the time you promise to your " +"customers." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:60 +#, python-format +msgid "The carrier %s does not export tracking numbers." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_commercial_partner_id +msgid "" +"The commercial entity that will be used on Journal Entries for this invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_company_id +msgid "The company is automatically set from your user preferences." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/product/importer.py:296 +#, python-format +msgid "" +"The configurable product is not imported in Odoo, because only the simple " +"products are used in the sales orders." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_custom_api_path +msgid "" +"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a " +"custom API path, in that case, the location has to be completed with the " +"custom API path " +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_position_id +msgid "" +"The fiscal position will determine taxes and accounts used for the partner." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_user_id +msgid "" +"The internal user that is in charge of communicating with this contact if " +"any." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_name +msgid "The name that will be used on account move lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_product_count +msgid "" +"The number of products under this category (Does not consider the children " +"categories)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_account_id +msgid "The partner account used for this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "" +"The partner has at least one unreconciled debit and credit since last time " +"the invoices & payments matching was performed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reference +msgid "The partner reference of this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_tz +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_tz +msgid "" +"The partner's timezone, used to output proper date and time values inside " +"printed reports. It is important to set a value for this field. You should " +"use the same timezone that is otherwise used to pick and render date and " +"time values: your computer's timezone." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_lst_price +msgid "" +"The sale price is managed from the product template. Click on the 'Variant " +"Prices' button to set the extra attribute prices." +msgstr "" + +#. module: connector_magento +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount_tax +msgid "" +"The tax amount computed in Odoo doesn't match with the tax amount in " +"Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_volume +msgid "The volume in m3." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_weight +msgid "The weight of the contents in Kg, not including any packaging, etc." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:41 +#, python-format +msgid "The wizard must be launched from a magento backend model" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:45 +#, python-format +msgid "The wizard must be launched on a single magento backend instance" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_expense_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"expenses for the current product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_income_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"sales for the current product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_expense_categ_id +msgid "This account will be used for invoices to value expenses." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_income_categ_id +msgid "This account will be used for invoices to value sales." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_delivery_carrier_id +msgid "This delivery method will be used when invoicing from picking." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image +msgid "" +"This field holds the image used as avatar for this contact, limited to " +"1024x1024px" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_variant +msgid "" +"This field holds the image used as image for the product variant, limited to " +"1024x1024px." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_price_extra +msgid "This is the sum of the extra price of all attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "" +"This option should respect the same\n" +" configuration as Magento. Pay\n" +" attention to the taxes on the products,\n" +" which should surely include prices when\n" +" this option is activated." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "" +"This payment term will be used instead of the default one for purchase " +"orders and vendor bills" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "" +"This payment term will be used instead of the default one for sale orders " +"and customer invoices" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "" +"This pricelist will be used, instead of the default one, for sales to the " +"current partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_customer +msgid "" +"This stock location will be used, instead of the default one, as the " +"destination location for goods you send to this partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for goods you receive from the current partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_production +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by manufacturing orders." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_procurement +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by procurements." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_inventory +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated when you do an inventory." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz +msgid "Timezone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz_offset +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz_offset +msgid "Timezone offset" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_title +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_title +msgid "Title" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_to_invoice +msgid "To Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_total +msgid "Total" +msgstr "" + +#. module: connector_magento +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount +msgid "Total Amount differs from Magento" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_total_invoiced +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_total_invoiced +msgid "Total Invoiced" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit +msgid "Total Payable" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit +msgid "Total Receivable" +msgstr "" + +#. module: connector_magento +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount_tax +msgid "Total Tax Amount differs from Magento" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount +msgid "Total amount" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total amount in the currency of the company, negative for credit notes." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total amount in the currency of the invoice, negative for credit notes." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_credit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_credit +msgid "Total amount this customer owes you." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount_tax +msgid "Total amount w. tax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_debit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_debit +msgid "Total amount you have to pay to this vendor." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total in Company Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total in Invoice Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_total_route_ids +msgid "Total routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_track_service +msgid "Track Service" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tracking +msgid "Tracking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_tracking_ref +msgid "Tracking Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_stock_picking +msgid "Transfer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "" +"True if reserved quants changed, which mean we might need to recompute the " +"package operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_type +msgid "Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_code +msgid "Type of Operation" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/magento_website/importer.py:22 +#, python-format +msgid "Undefined" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_unit +msgid "Unit Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of Measure" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of measurement for Weight" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread +msgid "Unread Messages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Unread Messages Counter" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_untaxed +msgid "Untaxed Amount" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed_signed +msgid "Untaxed Amount in Company Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Update" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Update all the products stock quantities" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_updated_at +msgid "Updated At (on Magento)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_location +msgid "Url to magento application" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +#: selection:magento.product.product,manage_stock:0 +msgid "Use Default Config" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_auth_basic msgid "Use HTTP Auth Basic" -msgstr "Usar autentificación básica http" +msgstr "" #. module: connector_magento -#: help:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_auth_basic msgid "" "Use a Basic Access Authentication for the API. The Magento server could be " "configured to restrict access using a HTTP authentication based on a " "username and a password." -msgstr "Usar una autentificación básica para la API. El servidor de magento debe ser configurado para restringir el acceso de usar una autentificación http basado en el usuario y contraseña" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_type +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_type +msgid "" +"Used to select automatically the right address according to the context in " +"sales and purchases documents." +msgstr "" #. module: connector_magento -#: field:magento.backend,username:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_username msgid "Username" -msgstr "Usuario" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_ids +msgid "Users" +msgstr "" #. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_currency_id +msgid "Utility field to express amount currency" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 #: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 msgid "Validate" -msgstr "Validar" +msgstr "" #. module: connector_magento -#: field:magento.backend,version:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_valuation +msgid "Valuation" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_variant +msgid "Variant Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price_extra +msgid "Variant Price Extra" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "Vendor Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "Vendor Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference +msgid "Vendor Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_supplier_taxes_id +msgid "Vendor Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_seller_ids +msgid "Vendors" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_version msgid "Version" -msgstr "Versión" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_volume +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_volume +msgid "Volume" +msgstr "" #. module: connector_magento -#: field:magento.backend,warehouse_id:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_warehouse_id msgid "Warehouse" -msgstr "Almacen" +msgstr "" #. module: connector_magento -#: help:magento.backend,warehouse_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_warehouse_id msgid "Warehouse used to compute the stock quantities." -msgstr "Almacén utilizado para computar las cantidades de stock" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warranty +msgid "Warranty" +msgstr "" #. module: connector_magento -#: help:magento.backend,password:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_password msgid "Webservice password" -msgstr "Contraseña webservice" +msgstr "" #. module: connector_magento -#: help:magento.backend,username:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_username msgid "Webservice user" -msgstr "Usuario webservice" +msgstr "" #. module: connector_magento -#: field:magento.backend,website_ids:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_website_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website msgid "Website" -msgstr "Sitio Web" +msgstr "" #. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_website +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_website +msgid "Website of Partner or Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_website_ids #: model:ir.ui.menu,name:connector_magento.menu_magento_website -#: view:magento.backend:connector_magento.view_magento_backend_form -#: field:magento.product.product,website_ids:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Websites" -msgstr "Sitios Web" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_weight +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight +msgid "Weight" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_shipping_weight +msgid "Weight for Shipping" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. This is the default " +"value for all products in this category. It can also directly be set on each " +"product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_input +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. When not set on the " +"product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. This is the " +"default value for all products in this category. It can also directly be set " +"on each product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_output +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. When not set on " +"the product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_journal +msgid "" +"When doing real-time inventory valuation, this is the Accounting Journal in " +"which entries will be automatically posted when stock moves are processed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "" +"When real-time inventory valuation is enabled on a product, this account " +"will hold the current value of the products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_zip +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_zip +msgid "Zip" +msgstr "" + +#. module: connector_magento +#: selection:magento.binding.backend.read,state:0 +msgid "choose" +msgstr "" #. module: connector_magento -#: help:magento.storeview,import_orders_from_date:0 +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_import_orders_from_date msgid "" "do not consider non-imported sale orders before this date. Leave empty to " "import all sale orders" -msgstr "do not consider non-imported sale orders before this date. Leave empty to import all sale orders" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com" -msgstr "e.g. http://my.magento.com" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com/admin" -msgstr "e.g. http://my.magento.com/admin" +msgstr "" + +#. module: connector_magento +#: selection:magento.binding.backend.read,state:0 +msgid "get" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "mag-" -msgstr "mag-" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding_backend_read +msgid "magento.binding.backend.read" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_config_specializer +msgid "magento.config.specializer" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner_category +msgid "magento.res.partner.category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_warehouse_id +msgid "warehouse" +msgstr "" diff --git a/connector_magento/i18n/fr.po b/connector_magento/i18n/fr.po index 10bc09eed..ba0c92167 100644 --- a/connector_magento/i18n/fr.po +++ b/connector_magento/i18n/fr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * connector_magento -# +# # Translators: # Guewen Baconnier , 2015 msgid "" @@ -11,20 +11,77 @@ msgstr "" "POT-Creation-Date: 2015-07-22 09:38+0000\n" "PO-Revision-Date: 2015-07-17 14:48+0000\n" "Last-Translator: OCA Transbot \n" -"Language-Team: French (http://www.transifex.com/oca/OCA-connector-magento-8-0/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/oca/OCA-connector-" +"magento-8-0/language/fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: connector_magento -#: help:magento.sale.order,magento_order_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_state +msgid "" +" * Draft: not confirmed yet and will not be scheduled until confirmed\n" +" * Waiting Another Operation: waiting for another move to proceed before it " +"becomes automatically available (e.g. in Make-To-Order flows)\n" +" * Waiting Availability: still waiting for the availability of products\n" +" * Partially Available: some products are available and reserved\n" +" * Ready to Transfer: products reserved, simply waiting for confirmation.\n" +" * Transferred: has been processed, can't be modified or cancelled anymore\n" +" * Cancelled: has been cancelled, can't be confirmed anymore" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_state +msgid "" +" * The 'Draft' status is used when a user is encoding a new and unconfirmed " +"Invoice.\n" +" * The 'Pro-forma' status is used when the invoice does not have an invoice " +"number.\n" +" * The 'Open' status is used when user creates invoice, an invoice number is " +"generated. It stays in the open status till the user pays the invoice.\n" +" * The 'Paid' status is set automatically when the invoice is paid. Its " +"related journal entries may or may not be reconciled.\n" +" * The 'Cancelled' status is used when user cancel invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_count +msgid "# Product Variants" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_product_count +#, fuzzy +msgid "# Products" +msgstr "Article" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sales_count +msgid "# Sales" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_count +#, fuzzy +msgid "# of Invoices" +msgstr "Facture" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_count +#, fuzzy +msgid "# of Sales Order" +msgstr "Bon de commande" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_magento_order_id msgid "'order_id' field in Magento" msgstr "Champ 'order_id' dans Magento" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form msgid "(recompute)" msgstr "(recalculer)" @@ -44,1151 +101,4224 @@ msgstr "Ce préfixe de vente est déjà configuré pour un autre backend." #: sql_constraint:magento.product.product:0 #: sql_constraint:magento.res.partner:0 #: sql_constraint:magento.res.partner.category:0 -#: sql_constraint:magento.sale.order:0 -#: sql_constraint:magento.sale.order.line:0 +#: sql_constraint:magento.sale.order:0 sql_constraint:magento.sale.order.line:0 #: sql_constraint:magento.stock.picking:0 sql_constraint:magento.store:0 #: sql_constraint:magento.storeview:0 sql_constraint:magento.website:0 msgid "A binding already exists with the same Magento ID." msgstr "Un lien avec le même Id. Magento existe déjà." +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_type +msgid "" +"A category of the view type is a virtual category that can be used as the " +"parent of another category to create a hierarchical structure." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_sale +msgid "" +"A description of the Product that you want to communicate to your customers. " +"This description will be copied to every Sale Order, Delivery Order and " +"Customer Invoice/Refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_purchase +msgid "" +"A description of the Product that you want to communicate to your vendors. " +"This description will be copied to every Purchase Order, Receipt and Vendor " +"Bill/Refund." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "" +"A parent sales order has been canceled on the backend and needs to be " +"canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_id +#, fuzzy +msgid "A parent sales order is a sales order replaced by this one." +msgstr "La commande Magento est déjà dans l'état %s" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "A parent sales order needs cancel" +msgstr "" + #. module: connector_magento #: sql_constraint:magento.address:0 msgid "A partner address can only have one binding by backend." msgstr "Une adresse ne peut avoir qu'un seul lien par backend." #. module: connector_magento -#: help:magento.backend,sale_prefix:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description +msgid "" +"A precise description of the Product, used only for internal information " +"purposes." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_sale_prefix +#, fuzzy msgid "" "A prefix put before the name of imported sales orders.\n" -"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, will be named 'mag-100000692' in OpenERP." -msgstr "Un préfixe ajouté devant le nom des commandes importées.\nPar exemple, avec le préfixe \"mag-\", la commande 100000692 dans Magento sera nommée \"mag-100000692\" dans Odoo." +"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, " +"will be named 'mag-100000692' in Odoo." +msgstr "" +"Un préfixe ajouté devant le nom des commandes importées.\n" +"Par exemple, avec le préfixe \"mag-\", la commande 100000692 dans Magento " +"sera nommée \"mag-100000692\" dans Odoo." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_type +msgid "" +"A stockable product is a product for which you manage stock. The \"Inventory" +"\" app has to be installed.\n" +"A consumable product, on the other hand, is a product for which stock is not " +"managed.\n" +"A service is a non-material product you provide.\n" +"A digital content is a non-material product you sell online. The files " +"attached to the products are the one that are sold on the e-commerce such as " +"e-books, music, pictures,... The \"Digital Product\" module has to be " +"installed." +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "API" msgstr "API" #. module: connector_magento -#: field:magento.address,is_magento_order_address:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_account_id +msgid "Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "Account Payable" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "Account Receivable" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date +msgid "Accounting Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction +msgid "Action Needed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_bank_account_required +msgid "" +"Activate this option if this payment method requires you to know the bank " +"account number of your customer or supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_active +msgid "Active" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_comment +#, fuzzy +msgid "Additional Information" +msgstr "Informations" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_type +msgid "Address Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_magento_order_address msgid "Address from a Magento Order" msgstr "Adresse d'une commande Magento" #. module: connector_magento -#: field:magento.backend,admin_location:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_admin_location msgid "Admin Location" msgstr "Emplacement de l'interface Admin" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Advanced Configuration" msgstr "Configuration avancée" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:173 +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_all_qty_delivered +msgid "All quantities delivered" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "Allow moving packs" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:69 #, python-format msgid "Already exported" msgstr "Déjà exporté" #. module: connector_magento -#: code:addons/connector_magento/sale.py:611 +#: code:addons/connector_magento/models/sale_order/importer.py:368 #, python-format msgid "Already imported" msgstr "Déjà importé" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:208 +#: code:addons/connector_magento/components/importer.py:198 #, python-format msgid "Already up-to-date." msgstr "Déjà à jour" #. module: connector_magento -#: help:magento.res.partner,consider_as_company:0 -msgid "" -"An account imported with a 'company' in the billing address is considered as a company.\n" -" The partner takes the name of the company and is not merged with the billing address." -msgstr "Un compte importé avec une société dans l'adresse de facturation est considérée comme un compte de société. En ce cas, le partenaire récupère le nom de la société et n'est pas fusionné avec l'adresse (contact) de facturation." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual +msgid "Amount Due" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_backend -msgid "Backends" -msgstr "Backends" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Amount Due in Company Currency" +msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_password:0 -msgid "Basic Auth. Password" -msgstr "Mot de passe d'auth. basique" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_signed +msgid "Amount Due in Invoice Currency" +msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_username:0 -msgid "Basic Auth. Username" -msgstr "Utilisateur d'auth. basique" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_consider_as_company +msgid "" +"An account imported with a 'company' in the billing address is considered as " +"a company.\n" +" The partner takes the name of the company and is not merged with the " +"billing address." +msgstr "" +"Un compte importé avec une société dans l'adresse de facturation est " +"considérée comme un compte de société. En ce cas, le partenaire récupère le " +"nom de la société et n'est pas fusionné avec l'adresse (contact) de " +"facturation." #. module: connector_magento -#: help:magento.backend,auth_basic_password:0 -msgid "Basic access authentication web server side password" -msgstr "Mot de passe d'authentification HTTP \"Basic\"" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_related_project_id +msgid "Analytic Account" +msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_username:0 -msgid "Basic access authentication web server side username" -msgstr "Nom d'utilisateur d'authentification HTTP \"Basic\"" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_analytic_tag_ids +msgid "Analytic Tags" +msgstr "" #. module: connector_magento -#: field:res.partner,birthday:0 -msgid "Birthday" -msgstr "Anniversaire" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_account_analytic_id +msgid "Analytic account" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "" -"By clicking on the buttons,\n" -" you will initiate the synchronizations\n" -" with Magento.\n" -" Note that the import or exports\n" -" won't be done directly,\n" -" they will create 'Jobs'\n" -" executed as soon as possible." -msgstr "En cliquant sur les boutons,\n Vous allez initier les synchronisations\n avec Magento.\n Important: les imports et exports\n ne sont pas exécutés immédiatement,\n ils vont créer des 'jobs',\n exécutés aussitôt que possible." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_value_ids +msgid "Attributes" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:180 -#, python-format -msgid "" -"Canceled: the delivery order does not contain lines from the original sale " -"order." -msgstr "Annulé : le bon de livraison ne contient aucune ligne provenant de la commande originale." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_workflow_process_id +msgid "Automatic Workflow" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_delivery_carrier -msgid "Carrier" -msgstr "Transporteur" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backorder_id +#, fuzzy +msgid "Back Order of" +msgstr "Bons de Commande" #. module: connector_magento -#: help:magento.storeview,no_sales_order_sync:0 -msgid "" -"Check if the storeview is active in Magento but its sales orders should not " -"be imported." -msgstr "Ne pas importer les commandes de cette vue magasin même si celle-ci est active sur Magento." +#: model:ir.ui.menu,name:connector_magento.menu_magento_backend +msgid "Backends" +msgstr "Backends" #. module: connector_magento -#: help:magento.product.product,no_stock_sync:0 -msgid "Check this to exclude the product from stock synchronizations." -msgstr "Exclure ce produit des synchronisations de stock." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_account_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_account_count +msgid "Bank" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_bank_id +msgid "Bank Account" +msgstr "" #. module: connector_magento -#: help:magento.backend,product_stock_field_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_bank_id msgid "" -"Choose the field of the product which will be used for stock inventory updates.\n" -"If empty, Quantity Available is used." -msgstr "Choisir le champ de l'article qui doit être utilisé pour mettre à jour la quantité en stock.Quand le champ est vide, la quantité en stock est utilisée." +"Bank Account Number to which the invoice will be paid. A Company bank " +"account if this is a Customer Invoice or Vendor Refund, otherwise a Partner " +"bank account number." +msgstr "" #. module: connector_magento -#: field:magento.storeview,code:0 field:magento.website,code:0 -msgid "Code" -msgstr "Code" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_bank_account_required +msgid "Bank Account Required" +msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,company:0 -msgid "Company" -msgstr "Société" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_ids +msgid "Banks" +msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Complete" -msgstr "Complet" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_barcode +msgid "Barcode" +msgstr "" #. module: connector_magento -#: field:magento.product.product,magento_qty:0 -msgid "Computed Quantity" -msgstr "Quantité calculée" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_list_price +msgid "" +"Base price to compute the customer price. Sometimes called the catalog price." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_connector_config_settings -msgid "Connector Configuration" -msgstr "Configuration du connecteur" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic Auth. Password" +msgstr "Mot de passe d'auth. basique" #. module: connector_magento -#: field:magento.res.partner,consider_as_company:0 -msgid "Considered as company" -msgstr "Considéré comme une société" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic Auth. Username" +msgstr "Utilisateur d'auth. basique" #. module: connector_magento -#: view:payment.method:connector_magento.payment_method_view_form -msgid "Create invoice on" -msgstr "Créer la facture sur" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic access authentication web server side password" +msgstr "Mot de passe d'authentification HTTP \"Basic\"" #. module: connector_magento -#: field:magento.store,create_invoice_on:0 -#: field:payment.method,create_invoice_on:0 -msgid "Create invoice on action" -msgstr "Créer la facture sur l'action" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic access authentication web server side username" +msgstr "Nom d'utilisateur d'authentification HTTP \"Basic\"" #. module: connector_magento -#: field:magento.address,created_at:0 -#: field:magento.product.product,created_at:0 -#: field:magento.res.partner,created_at:0 -msgid "Created At (on Magento)" -msgstr "Créé le (sur Magento)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image +msgid "Big-sized image" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,create_uid:0 -#: field:magento.address,create_uid:0 field:magento.backend,create_uid:0 -#: field:magento.product.category,create_uid:0 -#: field:magento.product.product,create_uid:0 -#: field:magento.res.partner,create_uid:0 -#: field:magento.res.partner.category,create_uid:0 -#: field:magento.sale.order,create_uid:0 -#: field:magento.sale.order.line,create_uid:0 -#: field:magento.stock.picking,create_uid:0 field:magento.store,create_uid:0 -#: field:magento.storeview,create_uid:0 field:magento.website,create_uid:0 -msgid "Created by" -msgstr "Créé par" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_birthday +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_users_birthday +msgid "Birthday" +msgstr "Anniversaire" #. module: connector_magento -#: field:magento.account.invoice,create_date:0 -#: field:magento.address,create_date:0 field:magento.backend,create_date:0 -#: field:magento.product.category,create_date:0 -#: field:magento.product.product,create_date:0 -#: field:magento.res.partner,create_date:0 -#: field:magento.res.partner.category,create_date:0 -#: field:magento.sale.order,create_date:0 -#: field:magento.sale.order.line,create_date:0 -#: field:magento.stock.picking,create_date:0 field:magento.store,create_date:0 -#: field:magento.storeview,create_date:0 field:magento.website,create_date:0 -msgid "Created on" -msgstr "Créé le" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_bounce +msgid "Bounce" +msgstr "" #. module: connector_magento -#: field:magento.backend,use_custom_api_path:0 -msgid "Custom Api Path" -msgstr "Chemin d'API personnalisé" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_bulk +msgid "Bulk Weight" +msgstr "" #. module: connector_magento -#: field:magento.address,is_default_billing:0 -msgid "Default Invoice" -msgstr "Adresse de facturation par défaut" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#, fuzzy +msgid "" +"By clicking on the buttons,\n" +" you will initiate the synchronizations\n" +" with Magento.\n" +" Note that the import or exports\n" +" won't be done directly,\n" +" they will create 'Jobs'\n" +" executed as soon as possible." +msgstr "" +"En cliquant sur les boutons,\n" +" Vous allez initier les synchronisations\n" +" avec Magento.\n" +" Important: les imports et exports\n" +" ne sont pas exécutés immédiatement,\n" +" ils vont créer des 'jobs',\n" +" exécutés aussitôt que possible." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered_updateable +#, fuzzy +msgid "Can Edit Delivered" +msgstr "Bon de livraison Magento" #. module: connector_magento -#: field:magento.backend,default_lang_id:0 -msgid "Default Language" -msgstr "Langue par défaut" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_purchase_ok +msgid "Can be Purchased" +msgstr "" #. module: connector_magento -#: field:magento.backend,default_category_id:0 -msgid "Default Product Category" -msgstr "Catégorie d'articles par défaut" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_rental +msgid "Can be Rent" +msgstr "" #. module: connector_magento -#: field:magento.address,is_default_shipping:0 -msgid "Default Shipping" -msgstr "Adresse de livraison par défaut" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_ok +msgid "Can be Sold" +msgstr "" #. module: connector_magento -#: field:magento.product.category,description:0 -msgid "Description" -msgstr "Description" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Cancel" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Do Not Manage Stock" -msgstr "Ne pas gérer les stock" +#: code:addons/connector_magento/models/sale_order/common.py:114 +#, python-format +msgid "Cancel sales order %s" +msgstr "" #. module: connector_magento -#: help:magento.store,send_invoice_paid_mail:0 -msgid "" -"Does the invoice export/creation should send an email notification on " -"Magento side?" -msgstr "Définit si Magento doit envoyer un e-mail lors de l'export des factures." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_canceled_in_backend +msgid "Canceled in backend" +msgstr "" #. module: connector_magento -#: help:magento.store,send_picking_done_mail:0 +#: code:addons/connector_magento/models/stock_picking/exporter.py:76 +#, python-format msgid "" -"Does the picking export/creation should send an email notification on " -"Magento side?" -msgstr "Définit si Magento doit envoyer un e-mail lors de l'export des bons de livraisons." +"Canceled: the delivery order does not contain lines from the original sale " +"order." +msgstr "" +"Annulé : le bon de livraison ne contient aucune ligne provenant de la " +"commande originale." #. module: connector_magento -#: field:magento.res.partner,emailid:0 -msgid "E-mail address" -msgstr "Adresse e-mail" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_cancellation_resolved +msgid "Cancellation from the backend resolved" +msgstr "" #. module: connector_magento -#: field:magento.storeview,enabled:0 -msgid "Enabled" -msgstr "Activé" +#: model:ir.model,name:connector_magento.model_delivery_carrier +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_id +msgid "Carrier" +msgstr "Transporteur" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_export_partner:0 -msgid "Export Partners to Magento (experimental)" -msgstr "Exporter les clients vers Magento (expérimental, ne pas utiliser en production)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_from_categ_ids +msgid "Category Routes" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_export_tracking:0 -msgid "Export tracking numbers" -msgstr "Exporter la référence de suivi transporteur" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_type +msgid "Category Type" +msgstr "" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Extensions" -msgstr "Extensions" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_channel_ids +msgid "Channels" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,guest_customer:0 -msgid "Guest Customer" -msgstr "Client invité" +#: model:ir.model.fields,help:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_is_company +msgid "Check if the contact is a company, otherwise it is a person" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "HTTP Authentication" -msgstr "Authentification HTTP" +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "" +"Check if the storeview is active in Magento but its sales orders should not " +"be imported." +msgstr "" +"Ne pas importer les commandes de cette vue magasin même si celle-ci est " +"active sur Magento." #. module: connector_magento -#: field:magento.account.invoice,id:0 field:magento.address,id:0 -#: field:magento.backend,id:0 field:magento.binding,id:0 -#: field:magento.product.category,id:0 field:magento.product.product,id:0 -#: field:magento.res.partner,id:0 field:magento.res.partner.category,id:0 -#: field:magento.sale.order,id:0 field:magento.sale.order.line,id:0 -#: field:magento.stock.picking,id:0 field:magento.store,id:0 -#: field:magento.storeview,id:0 field:magento.website,id:0 -msgid "ID" -msgstr "Id." +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Check the existance of quants linked to this picking" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,magento_id:0 -#: field:magento.address,magento_id:0 field:magento.binding,magento_id:0 -#: field:magento.product.category,magento_id:0 -#: field:magento.product.product,magento_id:0 -#: field:magento.res.partner,magento_id:0 -#: field:magento.res.partner.category,magento_id:0 -#: field:magento.sale.order,magento_id:0 -#: field:magento.sale.order.line,magento_id:0 -#: field:magento.stock.picking,magento_id:0 field:magento.store,magento_id:0 -#: field:magento.storeview,magento_id:0 field:magento.website,magento_id:0 -msgid "ID on Magento" -msgstr "ID sur Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Check the existence of pack operation on the picking" +msgstr "" #. module: connector_magento -#: help:magento.backend,default_category_id:0 -msgid "" -"If a default category is selected, products imported without a category will" -" be linked to it." -msgstr "Si une catégorie par défaut est sélectionnée, les articles importés sans catégorie y seront liés." +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer +msgid "Check this box if this contact is a customer." +msgstr "" #. module: connector_magento -#: help:magento.backend,default_lang_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier msgid "" -"If a default language is selected, the records will be imported in the translation of this language.\n" -"Note that a similar configuration exists for each storeview." -msgstr "Si une langue par défaut est sélectionnée, les enregistements seront importés dans la traduction de cette langue.\nNote: une configuration similaire peut être définie sur chaque vue magasin." +"Check this box if this contact is a vendor. If it's not checked, purchase " +"people will not see it when encoding a purchase order." +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders" -msgstr "Importer les commandes" +#: model:ir.model.fields,help:connector_magento.field_magento_address_employee +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_employee +msgid "Check this box if this contact is an Employee." +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders since" -msgstr "Importer les commandes depuis" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_no_stock_sync +msgid "Check this to exclude the product from stock synchronizations." +msgstr "Exclure ce produit des synchronisations de stock." #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import all customer groups" -msgstr "Importer tous les groupes client" +#: code:addons/connector_magento/models/magento_backend/common.py:234 +#, python-format +msgid "" +"Check your configuration, we can't get the data. Here is the error:\n" +"%s" +msgstr "" #. module: connector_magento -#: field:magento.backend,import_categories_from_date:0 -msgid "Import categories from date" -msgstr "Importer les catégories depuis la date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_child_id +#, fuzzy +msgid "Child Categories" +msgstr "Catégories filles Magento" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import in background" -msgstr "Importer en arrière-plan" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_child_ids +msgid "Child Tags" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import partners from all websites" -msgstr "Importer les clients de tous les sites web" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_product_stock_field_id +msgid "" +"Choose the field of the product which will be used for stock inventory " +"updates.\n" +"If empty, Quantity Available is used." +msgstr "" +"Choisir le champ de l'article qui doit être utilisé pour mettre à jour la " +"quantité en stock.Quand le champ est vide, la quantité en stock est utilisée." #. module: connector_magento -#: field:magento.website,import_partners_from_date:0 -msgid "Import partners from date" -msgstr "Importer les clients depuis la date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_city +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_city +msgid "City" +msgstr "" #. module: connector_magento -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import partners since" -msgstr "Importer les partenaires depuis" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Close" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products categories since" -msgstr "Importer les catégories d'articles depuis" +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_code +msgid "Code" +msgstr "Code" #. module: connector_magento -#: field:magento.backend,import_products_from_date:0 -msgid "Import products from date" -msgstr "Importer les articles depuis la date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_color +msgid "Color Index" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products since" -msgstr "Importer les articles depuis" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_partner_id +msgid "Commercial Entity" +msgstr "" #. module: connector_magento -#: field:magento.storeview,import_orders_from_date:0 -msgid "Import sale orders from date" -msgstr "Importer les commandes depuis une date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref_company_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref_company_ids +msgid "Companies that refers to partner" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import sales orders from all store views" -msgstr "Importer les commandes depuis toutes les vues magasin" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_company_id +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_res_users_company +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Company" +msgstr "Société" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Imports" -msgstr "Imports" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_currency_id +#, fuzzy +msgid "Company Currency" +msgstr "Société" #. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Informations" -msgstr "Informations" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_name +#, fuzzy +msgid "Company Name" +msgstr "Société" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form -msgid "Inventory Options" -msgstr "Options d'inventaire" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_company_name +#, fuzzy +msgid "Company Name Entity" +msgstr "Quantité calculée" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_account_invoice -#: field:magento.account.invoice,openerp_id:0 -msgid "Invoice" -msgstr "Facture" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_type +#, fuzzy +msgid "Company Type" +msgstr "Société" #. module: connector_magento -#: code:addons/connector_magento/invoice.py:122 -#: code:addons/connector_magento/tests/test_export_invoice.py:225 -#, python-format -msgid "Invoice Created" -msgstr "Facture créée" +#: selection:magento.stock.picking,picking_method:0 +msgid "Complete" +msgstr "Complet" #. module: connector_magento -#: field:magento.storeview,lang_id:0 -msgid "Language" -msgstr "Langue" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contact_address +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contact_address +#, fuzzy +msgid "Complete Address" +msgstr "Complet" #. module: connector_magento -#: field:magento.account.invoice,write_uid:0 field:magento.address,write_uid:0 -#: field:magento.backend,write_uid:0 -#: field:magento.product.category,write_uid:0 -#: field:magento.product.product,write_uid:0 -#: field:magento.res.partner,write_uid:0 -#: field:magento.res.partner.category,write_uid:0 -#: field:magento.sale.order,write_uid:0 -#: field:magento.sale.order.line,write_uid:0 -#: field:magento.stock.picking,write_uid:0 field:magento.store,write_uid:0 -#: field:magento.storeview,write_uid:0 field:magento.website,write_uid:0 -msgid "Last Updated by" -msgstr "Dernière mise à jour par" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date_done +msgid "Completion Date of Transfer" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,write_date:0 -#: field:magento.address,write_date:0 field:magento.backend,write_date:0 -#: field:magento.product.category,write_date:0 -#: field:magento.product.product,write_date:0 -#: field:magento.res.partner,write_date:0 -#: field:magento.res.partner.category,write_date:0 -#: field:magento.sale.order,write_date:0 -#: field:magento.sale.order.line,write_date:0 -#: field:magento.stock.picking,write_date:0 field:magento.store,write_date:0 -#: field:magento.storeview,write_date:0 field:magento.website,write_date:0 -msgid "Last Updated on" -msgstr "Dernière mise à jour le" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_qty +msgid "Computed Quantity" +msgstr "Quantité calculée" #. module: connector_magento -#: help:magento.product.product,magento_qty:0 -msgid "Last computed quantity to send on Magento." -msgstr "Dernière quantité calculée à envoyer à Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_confirmation_date +#, fuzzy +msgid "Confirmation Date" +msgstr "Configuration principale" #. module: connector_magento -#: field:magento.account.invoice,sync_date:0 field:magento.address,sync_date:0 -#: field:magento.binding,sync_date:0 -#: field:magento.product.category,sync_date:0 -#: field:magento.product.product,sync_date:0 -#: field:magento.res.partner,sync_date:0 -#: field:magento.res.partner.category,sync_date:0 -#: field:magento.sale.order,sync_date:0 -#: field:magento.sale.order.line,sync_date:0 -#: field:magento.stock.picking,sync_date:0 field:magento.store,sync_date:0 -#: field:magento.storeview,sync_date:0 field:magento.website,sync_date:0 -msgid "Last synchronization date" -msgstr "Dernière date de synchronisation" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_consider_as_company +msgid "Considered as company" +msgstr "Considéré comme une société" #. module: connector_magento -#: field:magento.backend,location:0 -msgid "Location" -msgstr "Emplacement" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_child_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_child_ids +msgid "Contacts" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_root -#: view:payment.method:connector_magento.payment_method_view_form -#: view:res.partner.category:connector_magento.view_partner_category_form -msgid "Magento" -msgstr "Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contracts_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contracts_count +msgid "Contracts" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_address -#: view:magento.address:connector_magento.view_magento_address_form -#: view:magento.address:connector_magento.view_magento_address_tree -msgid "Magento Address" -msgstr "Adresse Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_standard_price +msgid "Cost" +msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_address_bind_ids:0 -msgid "Magento Address Bindings" -msgstr "Liens avec les adresses Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_cost_method +msgid "Cost method" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_backend -#: field:magento.account.invoice,backend_id:0 -#: field:magento.address,backend_id:0 -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.backend:connector_magento.view_magento_backend_tree -#: field:magento.binding,backend_id:0 -#: field:magento.product.category,backend_id:0 -#: field:magento.product.product,backend_id:0 -#: field:magento.res.partner,backend_id:0 -#: field:magento.res.partner.category,backend_id:0 -#: field:magento.sale.order,backend_id:0 -#: field:magento.sale.order.line,backend_id:0 -#: field:magento.stock.picking,backend_id:0 field:magento.store,backend_id:0 -#: field:magento.storeview,backend_id:0 field:magento.website,backend_id:0 -msgid "Magento Backend" -msgstr "Backend Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_standard_price +msgid "" +"Cost of the product template used for standard stock valuation in accounting " +"and used as a base price on purchase orders. Expressed in the default unit " +"of measure of the product." +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_backend -msgid "Magento Backends" -msgstr "Backends Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_cost_method +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_cost_method +#, fuzzy +msgid "Costing Method" +msgstr "Méthode de livraison" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_binding -#: model:ir.model,name:connector_magento.model_magento_res_partner_category -msgid "Magento Binding (abstract)" -msgstr "Lien Magento (abstrait)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_count +msgid "Count Payment Token" +msgstr "" #. module: connector_magento -#: view:account.invoice:connector_magento.view_invoice_magento_form -#: field:account.invoice,magento_bind_ids:0 -#: view:product.category:connector_magento.view_product_category_form -#: field:product.category,magento_bind_ids:0 -#: view:product.product:connector_magento.product_normal_form_view -#: field:product.product,magento_bind_ids:0 -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_bind_ids:0 -#: field:res.partner.category,magento_bind_ids:0 -#: field:sale.order,magento_bind_ids:0 -#: field:sale.order.line,magento_bind_ids:0 -#: view:stock.picking:connector_magento.view_stock_picking_out_magento_form -#: field:stock.picking,magento_bind_ids:0 -msgid "Magento Bindings" -msgstr "Liens Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_bounce +msgid "Counter of the number of bounced emails for this contact" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_code:0 -msgid "Magento Carrier Code" -msgstr "Code de transporteur Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_country_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_country_id +msgid "Country" +msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_child_ids:0 -msgid "Magento Child Categories" -msgstr "Catégories filles Magento" +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +msgid "Create invoice on" +msgstr "Créer la facture sur" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Magento Configuration" -msgstr "Configuration Magento" +#: model:ir.model.fields,field_description:connector_magento.field_account_payment_mode_create_invoice_on +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_invoice_on +msgid "Create invoice on action" +msgstr "Créer la facture sur l'action" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_stock_picking -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_form -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_tree -msgid "Magento Delivery Order" -msgstr "Bon de livraison Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_created_at +msgid "Created At (on Magento)" +msgstr "Créé le (sur Magento)" #. module: connector_magento -#: field:magento.res.partner,group_id:0 -msgid "Magento Group (Category)" -msgstr "Groupe de client Magento (Catégorie)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_uid +msgid "Created by" +msgstr "Créé par" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_account_invoice -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_form -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_tree -msgid "Magento Invoice" -msgstr "Facture Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_date +msgid "Created on" +msgstr "Créé le" #. module: connector_magento -#: field:magento.sale.order,magento_order_id:0 -msgid "Magento Order ID" -msgstr "ID de commande Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date +#, fuzzy +msgid "Creation Date" +msgstr "Créé le" #. module: connector_magento -#: field:magento.sale.order,magento_order_line_ids:0 -msgid "Magento Order Lines" -msgstr "Lignes de commande Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date +msgid "Creation Date, usually the time of the order" +msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_parent_id:0 -msgid "Magento Parent Category" -msgstr "Catégorie parente dans Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit_limit +msgid "Credit Limit" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_res_partner -#: field:magento.address,magento_partner_id:0 -#: view:magento.res.partner:connector_magento.view_magento_res_partner_form -#: view:magento.res.partner:connector_magento.view_magento_res_partner_tree -msgid "Magento Partner" -msgstr "Client Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_currency_id +msgid "Currency" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_product -#: view:magento.product.product:connector_magento.view_magento_product_form -#: view:magento.product.product:connector_magento.view_magento_product_tree -msgid "Magento Product" -msgstr "Article Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_qty_available +msgid "" +"Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"stored in the Stock Location of the Warehouse of this Shop, or any of its " +"children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_category -#: view:magento.product.category:connector_magento.view_magento_product_category_form -#: view:magento.product.category:connector_magento.view_magento_product_category_tree -msgid "Magento Product Category" -msgstr "Catégorie d'articles Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_custom_api_path +msgid "Custom Api Path" +msgstr "Chemin d'API personnalisé" #. module: connector_magento -#: field:magento.product.product,product_type:0 -msgid "Magento Product Type" -msgstr "Type d'article Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_id +#, fuzzy +msgid "Customer" +msgstr "Client invité" #. module: connector_magento -#: field:magento.backend,product_binding_ids:0 -#: field:magento.website,product_binding_ids:0 -msgid "Magento Products" -msgstr "Articles Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_delay +msgid "Customer Lead Time" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order -#: field:magento.account.invoice,magento_order_id:0 -#: field:magento.sale.order.line,magento_order_id:0 -#: field:magento.stock.picking,magento_order_id:0 -msgid "Magento Sale Order" -msgstr "Commande Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_customer +#, fuzzy +msgid "Customer Location" +msgstr "Emplacement de l'interface Admin" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order_line -msgid "Magento Sale Order Line" -msgstr "Ligne de commande Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer_payment_mode_id +#, fuzzy +msgid "Customer Payment Mode" +msgstr "Méthode de paiement" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_store -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.store:connector_magento.view_magento_store_tree -msgid "Magento Store" -msgstr "Magasin Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "Customer Payment Terms" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_store -msgid "Magento Stores" -msgstr "Magasins Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_partner_ref +#, fuzzy +msgid "Customer Ref" +msgstr "Client invité" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_storeview -#: field:magento.sale.order,storeview_id:0 -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.storeview:connector_magento.view_magento_storeview_tree -msgid "Magento Storeview" -msgstr "Vue magasin Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_client_order_ref +msgid "Customer Reference" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview -msgid "Magento Storeviews" -msgstr "Vues magasin Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_taxes_id +msgid "Customer Taxes" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_tracking_title:0 -msgid "Magento Tracking Title" -msgstr "Titre de suivi de livraison sur Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_date +msgid "Date" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,taxvat:0 -msgid "Magento VAT" -msgstr "TVA Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date_done +msgid "Date of Transfer" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_website -#: field:magento.address,website_id:0 field:magento.res.partner,website_id:0 -#: field:magento.store,website_id:0 -#: view:magento.website:connector_magento.view_magento_website_form -#: view:magento.website:connector_magento.view_magento_website_tree -msgid "Magento Website" -msgstr "Site web Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_last_post +msgid "Date of the last message posted on the record." +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_website -msgid "Magento Websites" -msgstr "Sites web Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_confirmation_date +msgid "Date on which the sale order is confirmed." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1079 -#, python-format -msgid "Magento sales order is already in state %s" -msgstr "La commande Magento est déjà dans l'état %s" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_billing +msgid "Default Invoice" +msgstr "Adresse de facturation par défaut" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Magentoerpconnect" -msgstr "Magentoerpconnect" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_lang_id +msgid "Default Language" +msgstr "Langue par défaut" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Main Configuration" -msgstr "Configuration principale" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_owner_id +#, fuzzy +msgid "Default Owner" +msgstr "Adresse de facturation par défaut" #. module: connector_magento -#: field:magento.product.product,backorders:0 -msgid "Manage Inventory Backorders" -msgstr "Commandes en rupture de stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_category_id +msgid "Default Product Category" +msgstr "Catégorie d'articles par défaut" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Manage Stock" -msgstr "Gérer les stocks" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_shipping +msgid "Default Shipping" +msgstr "Adresse de livraison par défaut" #. module: connector_magento -#: field:magento.product.product,manage_stock:0 -msgid "Manage Stock Level" -msgstr "Gérer les stocks" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_id +msgid "Default Unit of Measure used for all stock operation." +msgstr "" #. module: connector_magento -#: field:magento.backend,name:0 field:magento.store,name:0 -#: field:magento.storeview,name:0 field:magento.website,name:0 -msgid "Name" -msgstr "Nom" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_po_id +msgid "" +"Default Unit of Measure used for purchase orders. It must be in the same " +"category than the default unit of measure." +msgstr "" #. module: connector_magento -#: field:magento.res.partner,newsletter:0 -msgid "Newsletter" -msgstr "Newsletter" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_trust +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_trust +msgid "Degree of trust you have in this debtor" +msgstr "" #. module: connector_magento -#: field:magento.storeview,no_sales_order_sync:0 -msgid "No Sales Order Synchronization" -msgstr "Pas de synchronisation de commandes" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered +msgid "Delivered" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "No Sell" -msgstr "Pas de commandes au delà des stocks" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_delivery_count +msgid "Delivery" +msgstr "" #. module: connector_magento -#: field:magento.product.product,no_stock_sync:0 -msgid "No Stock Synchronization" -msgstr "Pas de synchronisation de stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_shipping_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery Address" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/related_action.py:55 -#, python-format -msgid "" -"No admin URL configured on the backend or no admin path is defined for this " -"record." -msgstr "Pas d'URL pour l'interface d'administration configurée sur le backend ou pas de chemin \"admin\" défini pour cet enregistrement." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_customer_lead +msgid "Delivery Lead Time" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:83 -#, python-format -msgid "No tracking number to send." -msgstr "Pas de numéro de suivi à envoyer." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_carrier_id +msgid "Delivery Method" +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,notes:0 -msgid "Notes" -msgstr "Notes" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_count +#, fuzzy +msgid "Delivery Orders" +msgstr "Bon de livraison Magento" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:407 -#: code:addons/connector_magento/unit/export_synchronizer.py:412 -#, python-format -msgid "Nothing to export." -msgstr "Rien à exporter." +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_type +msgid "Delivery Type" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "" -"Once imported,\n" -" some types of records,\n" -" like the products or categories,\n" -" need a manual review.\n" -" You will find the list\n" -" of the new records to review\n" -" in the menu 'Connectors > Checkpoint'." -msgstr "Une fois importés,\n certains types d'enregistrements,\n comme les articles ou les catégories,\n nécessitent un contrôle manuel.\n Vous trouverez la liste\n des nouveaux enregistrements à vérifier\n dans le menu 'Connecteurs > Point de contrôle'." - -#. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Options" -msgstr "Options" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_shipping_id +msgid "Delivery address for current invoice." +msgstr "" #. module: connector_magento -#: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 -msgid "Paid" -msgstr "Payé" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery address for current sales order." +msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_parent_id:0 -msgid "Parent Magento Order" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_route_ids +msgid "" +"Depending on the modules installed, this will allow you to define the route " +"of the product: whether it will be bought, manufactured, MTO/MTS,..." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_name +msgid "Description" +msgstr "Description" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_picking +#, fuzzy +msgid "Description on Picking" +msgstr "Description" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_dest_id +msgid "Destination Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_discount +msgid "Discount (%)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_display_name +msgid "Display Name" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Do Not Manage Stock" +msgstr "Ne pas gérer les stock" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "" +"Does the invoice export/creation should send an email notification on " +"Magento side?" +msgstr "" +"Définit si Magento doit envoyer un e-mail lors de l'export des factures." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_picking_done_mail +msgid "" +"Does the picking export/creation should send an email notification on " +"Magento side?" +msgstr "" +"Définit si Magento doit envoyer un e-mail lors de l'export des bons de " +"livraisons." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_due +msgid "Due Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_emailid +msgid "E-mail address" +msgstr "Adresse e-mail" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_partner_share +msgid "" +"Either customer (no user), either shared user. Indicated the current partner " +"is a customer without access or with a limited access created for sharing " +"data." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email +msgid "Email" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_notify_email +msgid "Email Messages and Notifications" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_employee +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_employee +msgid "Employee" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_enabled +msgid "Enabled" +msgstr "Activé" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_price +#, fuzzy +msgid "Estimated Delivery Price" +msgstr "Bon de livraison Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_exception_ids +#, fuzzy +msgid "Exceptions" +msgstr "Options" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_expense_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_expense_id +msgid "Expense Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_validity_date +msgid "Expiration Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_export_tracking +msgid "Export tracking numbers" +msgstr "Exporter la référence de suivi transporteur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_ids +msgid "Extra categories" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_fax +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_fax +msgid "Fax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_data +msgid "File" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_name +#, fuzzy +msgid "File Name" +msgstr "Nom" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_carrier_id +msgid "Fill this field if you plan to invoice the shipping based on picking." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_firstname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_firstname +msgid "First name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_fiscal_position_id +msgid "Fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_follower_ids +msgid "Followers" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_removal_strategy_id +msgid "Force Removal Strategy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_virtual_available +#, fuzzy +msgid "Forecast Quantity" +msgstr "Quantité calculée" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_email_formatted +msgid "Format email address \"Name \"" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email_formatted +msgid "Formatted Email" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Get" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_packaging_ids +msgid "" +"Gives the different ways to package the same product. This has no impact on " +"the picking order and is mainly used if you use the EDI module." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sequence +msgid "Gives the sequence order when displaying a product list" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_guest_customer +msgid "Guest Customer" +msgstr "Client invité" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_hs_code +#, fuzzy +msgid "HS Code" +msgstr "Code" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "HTTP Authentication" +msgstr "Authentification HTTP" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_has_checkpoint +msgid "Has Checkpoint" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Has Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_has_scrap_move +msgid "Has Scrap Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_need_cancel +msgid "Has been canceled on the backend, need to be canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_has_outstanding +msgid "Has outstanding" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Has quants already reserved" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "Has unreconciled entries" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Here is the file with information read drom the backend:" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id_5804 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_id +msgid "ID" +msgstr "Id." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_external_id +msgid "ID on Magento" +msgstr "ID sur Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_im_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_im_status +msgid "IM Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_category_id +msgid "" +"If a default category is selected, products imported without a category will " +"be linked to it." +msgstr "" +"Si une catégorie par défaut est sélectionnée, les articles importés sans " +"catégorie y seront liés." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_lang_id +msgid "" +"If a default language is selected, the records will be imported in the " +"translation of this language.\n" +"Note that a similar configuration exists for each storeview." +msgstr "" +"Si une langue par défaut est sélectionnée, les enregistements seront " +"importés dans la traduction de cette langue.\n" +"Note: une configuration similaire peut être définie sur chaque vue magasin." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "" +"If checked, this shows the packs to be moved as a whole in the Operations " +"tab all the time, even if there was no entire pack reserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_opt_out +msgid "" +"If opt-out is checked, this contact has refused to receive emails for mass " +"mailing and marketing campaign. Filter 'Available for Mass Mailing' allows " +"users to filter the partners when performing mass mailing." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'. The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_team_id +msgid "" +"If set, sale team used notably for sales and assignations related to this " +"partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "" +"If specified, this fiscal position will be used to fill the field fiscal " +"position on the sale order created by the connector.The value can also be " +"specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_warehouse_id +msgid "" +"If specified, this warehouse will be used to load fill the field warehouse " +"(and company) on the sale order created by the connector.The value can also " +"be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_lang +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_lang +msgid "" +"If the selected language is loaded in the system, all documents related to " +"this contact will be printed in this language. If not, it will be English." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_website_is_multi_company +msgid "" +"If this flag is set, it is possible to choose warehouse at each level. When " +"import partner, ignore company_id if this flag is set." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_backorder_id +msgid "" +"If this shipment was split, then this field links to the shipment which " +"contains the already processed part." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_active +msgid "" +"If unchecked, it will allow you to hide the product without removing it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_payment_term_id +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. If you keep the payment term and the due " +"date empty, it means direct payment. The payment term may compute several " +"due dates, for example 50% now, 50% in one month." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_due +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. The payment term may compute several due " +"dates, for example 50% now and 50% in one month, but if you want to force a " +"due date, make sure that the payment term is not set on the invoice. If you " +"keep the payment term and the due date empty, it means direct payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_ignore_exception +#, fuzzy +msgid "Ignore Exceptions" +msgstr "Options d'inventaire" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image +msgid "Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image +msgid "" +"Image of the product variant (Big-sized image of product template if false). " +"It is automatically resized as a 1024x1024px image, with aspect ratio " +"preserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_medium +msgid "" +"Image of the product variant (Medium-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_small +msgid "" +"Image of the product variant (Small-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders" +msgstr "Importer les commandes" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders since" +msgstr "Importer les commandes depuis" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import all customer groups" +msgstr "Importer tous les groupes client" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_categories_from_date +msgid "Import categories from date" +msgstr "Importer les catégories depuis la date" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import in background" +msgstr "Importer en arrière-plan" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import partners from all websites" +msgstr "Importer les clients de tous les sites web" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_import_partners_from_date +msgid "Import partners from date" +msgstr "Importer les clients depuis la date" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import partners since" +msgstr "Importer les partenaires depuis" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products categories since" +msgstr "Importer les catégories d'articles depuis" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_products_from_date +msgid "Import products from date" +msgstr "Importer les articles depuis la date" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products since" +msgstr "Importer les articles depuis" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_import_orders_from_date +msgid "Import sale orders from date" +msgstr "Importer les commandes depuis une date" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import sales orders from all store views" +msgstr "Importer les commandes depuis toutes les vues magasin" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Imports" +msgstr "Imports" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_income_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_income_id +msgid "Income Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_incoming_qty +msgid "Incoming" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_incoterms_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_incoterm +msgid "Incoterms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_incoterms_id +msgid "" +"Incoterms are series of sales terms. They are used to divide transaction " +"costs and responsibilities between buyer and seller and reflect state-of-the-" +"art transportation practices." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Informations" +msgstr "Informations" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_default_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref +msgid "Internal Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_barcode +msgid "International Article Number used for product identification." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_incoterm +msgid "" +"International Commercial Terms are a series of predefined commercial terms " +"used in international transactions." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_inventory +#, fuzzy +msgid "Inventory Location" +msgstr "Options d'inventaire" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +msgid "Inventory Options" +msgstr "Options d'inventaire" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_valuation +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_valuation +#, fuzzy +msgid "Inventory Valuation" +msgstr "Options d'inventaire" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_invoice +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn +msgid "Invoice" +msgstr "Facture" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_invoice_id +#, fuzzy +msgid "Invoice Address" +msgstr "Facture créée" + +#. module: connector_magento +#: code:addons/connector_magento/models/account_invoice/exporter.py:26 +#, python-format +msgid "Invoice Created" +msgstr "Facture créée" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_invoice +#, fuzzy +msgid "Invoice Date" +msgstr "Facture créée" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_invoice_line_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_lines +#, fuzzy +msgid "Invoice Lines" +msgstr "Facture" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_shipping_on_delivery +msgid "Invoice Shipping on Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_status +#, fuzzy +msgid "Invoice Status" +msgstr "Facture créée" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_refund_invoice_id +msgid "Invoice for which this invoice is the refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_invoiced +#, fuzzy +msgid "Invoiced" +msgstr "Facture" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_ids +#, fuzzy +msgid "Invoices" +msgstr "Facture" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_invoice_policy +msgid "Invoicing Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_is_multi_company +msgid "Is Backend Multi-Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_is_company +#, fuzzy +msgid "Is a Company" +msgstr "Société" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer +#, fuzzy +msgid "Is a Customer" +msgstr "Client invité" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_is_delivery +msgid "Is a Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier +msgid "Is a Vendor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reconciled +msgid "" +"It indicates that the invoice has been paid and the journal entry of the " +"invoice has been reconciled with one or several journal entries of payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_sent +msgid "It indicates that the invoice has been sent." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_move_type +msgid "It specifies goods to be deliver partially or all at once" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_function +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_function +msgid "Job Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_journal_id +msgid "Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_id +msgid "Journal Entry" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_name +msgid "Journal Entry Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_journal_item_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_journal_item_count +msgid "Journal Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_invoice +msgid "Keep empty to use the current date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date +msgid "Keep empty to use the invoice date." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_lang_id +msgid "Language" +msgstr "Langue" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_last_post +msgid "Last Message Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_address___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_store___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_website___last_update +#, fuzzy +msgid "Last Modified on" +msgstr "Dernière mise à jour le" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_magento_qty +msgid "Last computed quantity to send on Magento." +msgstr "Dernière quantité calculée à envoyer à Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lastname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lastname +msgid "Last name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "" +"Last time the invoices & payments matching was performed for this partner. " +"It is set either if there's not at least an unreconciled debit and an " +"unreconciled credit or if you click the \"Done\" button." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "Latest Invoices & Payments Matching Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_launch_pack_operations +msgid "Launch Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_sequence +msgid "Layout Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_left +msgid "Left Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_left +msgid "Left parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_id +msgid "Link to the automatically generated Journal Items." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_location +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_location_id +msgid "Location" +msgstr "Emplacement" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_packaging_ids +msgid "Logistical Units" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.menu,name:connector_magento.menu_magento_root +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +#: model:ir.ui.view,arch_db:connector_magento.view_magento_delivery_carrier_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_category_form +msgid "Magento" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_address +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_tree +msgid "Magento Address" +msgstr "Adresse Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_address_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Magento Address Bindings" +msgstr "Liens avec les adresses Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_backend +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_backend_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_tree +msgid "Magento Backend" +msgstr "Backend Magento" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_backend +msgid "Magento Backends" +msgstr "Backends Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_carrier_code +#, fuzzy +msgid "Magento Base Carrier Code" +msgstr "Code de transporteur Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding +msgid "Magento Binding (abstract)" +msgstr "Lien Magento (abstrait)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_stock_picking_magento_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.product_normal_form_view +#: model:ir.ui.view,arch_db:connector_magento.view_invoice_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_sale_order_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_stock_picking_out_magento_form +msgid "Magento Bindings" +msgstr "Liens Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_code +msgid "Magento Carrier Code" +msgstr "Code de transporteur Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_child_ids +msgid "Magento Child Categories" +msgstr "Catégories filles Magento" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Magento Configuration" +msgstr "Configuration Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_stock_picking +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_tree +msgid "Magento Delivery Order" +msgstr "Bon de livraison Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_group_id +msgid "Magento Group (Category)" +msgstr "Groupe de client Magento (Catégorie)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_id +#, fuzzy +msgid "Magento Id" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_account_invoice +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_tree +msgid "Magento Invoice" +msgstr "Facture Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_id +msgid "Magento Order ID" +msgstr "ID de commande Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_line_ids +msgid "Magento Order Lines" +msgstr "Lignes de commande Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_parent_id +msgid "Magento Parent Category" +msgstr "Catégorie parente dans Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_partner_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_tree +msgid "Magento Partner" +msgstr "Client Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_product +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_tree +msgid "Magento Product" +msgstr "Article Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_category +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_tree +msgid "Magento Product Category" +msgstr "Catégorie d'articles Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_type +msgid "Magento Product Type" +msgstr "Type d'article Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_binding_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_product_binding_ids +msgid "Magento Products" +msgstr "Articles Magento" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_rewards +#: model:product.template,name:connector_magento.product_product_rewards_product_template +#, fuzzy +msgid "Magento Rewards" +msgstr "Backends Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_order_id +msgid "Magento Sale Order" +msgstr "Commande Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order_line +msgid "Magento Sale Order Line" +msgstr "Ligne de commande Magento" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_tree +#, fuzzy +msgid "Magento Sales Orders" +msgstr "Commande Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_tree +msgid "Magento Store" +msgstr "Magasin Magento" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_store_credit +#: model:product.template,name:connector_magento.product_product_store_credit_product_template +#, fuzzy +msgid "Magento Store Credit" +msgstr "Magasin Magento" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_store +msgid "Magento Stores" +msgstr "Magasins Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_storeview +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_storeview_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_tree +msgid "Magento Storeview" +msgstr "Vue magasin Magento" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview +msgid "Magento Storeviews" +msgstr "Vues magasin Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_tracking_title +msgid "Magento Tracking Title" +msgstr "Titre de suivi de livraison sur Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_taxvat +msgid "Magento VAT" +msgstr "TVA Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_website_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_tree +msgid "Magento Website" +msgstr "Site web Magento" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_website +msgid "Magento Websites" +msgstr "Sites web Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_backend_id +#, fuzzy +msgid "Magento backend id" +msgstr "Backend Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_binding_model +#, fuzzy +msgid "Magento binding model" +msgstr "Liens Magento" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:58 +#, python-format +msgid "Magento sales order is already in state %s" +msgstr "La commande Magento est déjà dans l'état %s" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Main Configuration" +msgstr "Configuration principale" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_main_exception_id +msgid "Main Exception" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backorders +msgid "Manage Inventory Backorders" +msgstr "Commandes en rupture de stock" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Manage Stock" +msgstr "Gérer les stocks" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_manage_stock +msgid "Manage Stock Level" +msgstr "Gérer les stocks" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_track_service +msgid "" +"Manually set quantities on order: Invoice based on the manually entered " +"quantity, without creating an analytic account.\n" +"Timesheets on contract: Invoice based on the tracked hours on the related " +"timesheet.\n" +"Create a task and track hours: Create a task on the sale order validation " +"and track the work hours." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_validity_date +msgid "" +"Manually set the expiration date of your quotation (offer), or it will set " +"the date automatically based on the template if online quotation is " +"installed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_max_date +msgid "Max. Expected Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_medium +msgid "Medium-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_medium +msgid "" +"Medium-sized image of this contact. It is automatically resized as a " +"128x128px image, with aspect ratio preserved. Use this field in form views " +"or some kanban views." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn_msg +#, fuzzy +msgid "Message for Invoice" +msgstr "Facture Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn_msg +#, fuzzy +msgid "Message for Sales Order" +msgstr "Commande Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn_msg +#, fuzzy +msgid "Message for Sales Order Line" +msgstr "Ligne de commande Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn_msg +#, fuzzy +msgid "Message for Stock Picking" +msgstr "Bon de livraison" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_ids +msgid "Messages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_orderpoint_ids +msgid "Minimum Stock Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_mobile +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_mobile +msgid "Mobile" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_name +msgid "Name" +msgstr "Nom" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_need_cancel +msgid "Need to be canceled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_newsletter +msgid "Newsletter" +msgstr "Newsletter" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "No Sales Order Synchronization" +msgstr "Pas de synchronisation de commandes" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "No Sell" +msgstr "Pas de commandes au delà des stocks" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_no_stock_sync +msgid "No Stock Synchronization" +msgstr "Pas de synchronisation de stock" + +#. module: connector_magento +#: code:addons/connector_magento/models/queue_job/common.py:27 +#, python-format +msgid "" +"No admin URL configured on the backend or no admin path is defined for this " +"record." +msgstr "" +"Pas d'URL pour l'interface d'administration configurée sur le backend ou pas " +"de chemin \"admin\" défini pour cet enregistrement." + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:63 +#, python-format +msgid "No tracking number to send." +msgstr "Pas de numéro de suivi à envoyer." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_product_ids +msgid "Non pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_notes +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_note +msgid "Notes" +msgstr "Notes" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:363 +#: code:addons/connector_magento/components/exporter.py:368 +#, python-format +msgid "Nothing to export." +msgstr "Rien à exporter." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_number +msgid "Number" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_number_of_packages +msgid "Number of Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_line_customer_lead +msgid "" +"Number of days between the order confirmation and the shipping of the " +"products to the customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#, fuzzy +msgid "" +"Once imported,\n" +" some types of records,\n" +" like the products or categories,\n" +" need a manual review.\n" +" You will find the list\n" +" of the new records to review\n" +" in the menu 'Connectors > Checkpoint'." +msgstr "" +"Une fois importés,\n" +" certains types d'enregistrements,\n" +" comme les articles ou les catégories,\n" +" nécessitent un contrôle manuel.\n" +" Vous trouverez la liste\n" +" des nouveaux enregistrements à vérifier\n" +" dans le menu 'Connecteurs > Point de " +"contrôle'." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_opt_out +msgid "Opt-Out" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Options" +msgstr "Options" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_date_order +msgid "Order Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_order_line +#, fuzzy +msgid "Order Lines" +msgstr "Ligne de commande" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_name +msgid "Order Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_state +msgid "Order Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_invoice_policy +msgid "" +"Ordered Quantity: Invoice based on the quantity the customer ordered.\n" +"Delivered Quantity: Invoiced based on the quantity the vendor delivered " +"(time or deliveries)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_outgoing_qty +msgid "Outgoing" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_outstanding_credits_debits_widget +msgid "Outstanding credits debits widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_owner_id +msgid "Owner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_pack_ids +msgid "Pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_package_ids +msgid "Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_packaging +msgid "Packaging" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 +#: selection:magento.store,create_invoice_on:0 +msgid "Paid" +msgstr "Payé" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reconciled +msgid "Paid/Reconciled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_id +#, fuzzy +msgid "Parent Category" +msgstr "Catégorie de partenaire" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_parent_id +msgid "Parent Magento Order" +msgstr "Commande Magento parente" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_id +#, fuzzy +msgid "Parent Order" msgstr "Commande Magento parente" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Partial" -msgstr "Partiel" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_name +msgid "Parent name" +msgstr "" + +#. module: connector_magento +#: selection:magento.stock.picking,picking_method:0 +msgid "Partial" +msgstr "Partiel" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_partner_id +msgid "Partner" +msgstr "Partenaire" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_odoo_id +msgid "Partner Category" +msgstr "Catégorie de partenaire" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner_category +msgid "Partner Tags" +msgstr "Catégories de partenaires" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_partner_ids +#, fuzzy +msgid "Partners" +msgstr "Partenaire" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_password +msgid "Password" +msgstr "Mot de passe" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit_limit +msgid "Payable Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_mode_id +#, fuzzy +msgid "Payment Mode" +msgstr "Méthode de paiement" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_payment_mode +#, fuzzy +msgid "Payment Modes" +msgstr "Méthode de paiement" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_move_line_ids +#, fuzzy +msgid "Payment Move Lines" +msgstr "Lignes de commande Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference_type +msgid "Payment Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_term_id +#, fuzzy +msgid "Payment Terms" +msgstr "Méthode de paiement" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_ids +#, fuzzy +msgid "Payment Tokens" +msgstr "Méthode de paiement" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_ids +#, fuzzy +msgid "Payments" +msgstr "Méthode de paiement" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payments_widget +#, fuzzy +msgid "Payments widget" +msgstr "Méthode de paiement" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_phone +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_phone +msgid "Phone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_method +msgid "Picking Method" +msgstr "Méthode de livraison" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_id +#, fuzzy +msgid "Picking Type" +msgstr "Méthode de livraison" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_ids +msgid "Picking associated to this sale" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_notify_email +msgid "" +"Policy to receive emails for new messages pushed to your personal Inbox:\n" +"- Never: no emails are sent\n" +"- All Messages: for every notification you receive in your Inbox" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price +msgid "Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce +msgid "Price Reduce" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxexcl +msgid "Price Reduce Tax excl" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxinc +msgid "Price Reduce Tax inc" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_item_ids +msgid "Pricelist Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_item_ids +msgid "Pricelist item ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_catalog_price_tax_included +msgid "Prices include tax" +msgstr "Prix taxes-incluses" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_id +#, fuzzy +msgid "Pricing/Primary Category" +msgstr "Catégorie de partenaire" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_printed +msgid "Printed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_priority +msgid "Priority" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_priority +msgid "" +"Priority for this picking. Setting manually a value here would set it as " +"priority for all the moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_procurement_group_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_group_id +msgid "Procurement Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_procurement +#, fuzzy +msgid "Procurement Location" +msgstr "Emplacement de l'interface Admin" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_procurement_ids +msgid "Procurements" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_product +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_product_id +msgid "Product" +msgstr "Article" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_line_ids +msgid "Product Attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_category +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_odoo_id +msgid "Product Category" +msgstr "Catégorie d'articles" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_tmpl_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_tmpl_id +#, fuzzy +msgid "Product Template" +msgstr "Catégorie d'articles" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_type +#, fuzzy +msgid "Product Type" +msgstr "Type d'article Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_production +#, fuzzy +msgid "Production Location" +msgstr "Emplacement de l'interface Admin" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_ids +#, fuzzy +msgid "Products" +msgstr "Article" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_delivery_type +msgid "Provider" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_purchase +#, fuzzy +msgid "Purchase Description" +msgstr "Description" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_po_id +msgid "Purchase Unit of Measure" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_qty +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom_qty +#, fuzzy +msgid "Quantity" +msgstr "Quantité calculée" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_qty_available +#, fuzzy +msgid "Quantity On Hand" +msgstr "Autoriser les quantités négatives" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_incoming_qty +msgid "" +"Quantity of products that are planned to arrive.\n" +"In a context with a single Stock Location, this includes goods arriving to " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location with " +"'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_outgoing_qty +msgid "" +"Quantity of products that are planned to leave.\n" +"In a context with a single Stock Location, this includes goods leaving this " +"Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving the Stock " +"Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods leaving any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_queue_job +msgid "Queue Job" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_expense_policy +msgid "Re-Invoice Expenses" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Read Binding information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.magento_binding_backend_read_act_window +msgid "Read information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reception_count +msgid "Receipt" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "Recompute pack operation?" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/deleter.py:21 +#, python-format +msgid "Record %s deleted on Magento" +msgstr "Enregistrement %s supprimé sur Magento" + +#. module: connector_magento +#: code:addons/connector_magento/components/importer.py:189 +#, python-format +msgid "Record does no longer exist in Magento" +msgstr "L'enregistrement n'existe plus sur Magento" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:370 +#, python-format +msgid "Record exported with ID %s on Magento." +msgstr "Enregistrement exporté sur Magento avec l'Id. %s" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_name +msgid "Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_origin +msgid "Reference of the document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_origin +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_origin +msgid "Reference of the document that produced this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_name +#, fuzzy +msgid "Reference/Description" +msgstr "Description" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_id +#, fuzzy +msgid "Related Company" +msgstr "Créé le" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_ids +msgid "Related Packing Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_related_backorder_ids +msgid "Related backorders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Remaining amount due in the currency of the company." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_signed +msgid "Remaining amount due in the currency of the invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual +msgid "Remaining amount due." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/common.py:137 +#, python-format +msgid "Reopen sales order %s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_nbr_reordering_rules +msgid "Reordering Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_max_qty +msgid "Reordering max qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_min_qty +msgid "Reordering min qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_right +msgid "Right Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_right +msgid "Right parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_route_id +msgid "Route" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_route_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_ids +msgid "Routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_rule_group +msgid "Rule group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_sale +#, fuzzy +msgid "Sale Description" +msgstr "Description" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_sale_id +msgid "Sale Order" +msgstr "Bons de Commande" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_odoo_id +msgid "Sale Order Line" +msgstr "Ligne de commande" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_sale_prefix +msgid "Sale Prefix" +msgstr "Préfixe de vente" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_list_price +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_lst_price +#, fuzzy +msgid "Sale Price" +msgstr "Préfixe de vente" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_product_pricelist +#, fuzzy +msgid "Sale Pricelist" +msgstr "Préfixe de vente" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_workflow_process_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_workflow_process_id +msgid "Sale Workflow Process" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:54 +#, python-format +msgid "Sale is not linked with a Magento sales order" +msgstr "La commande n'est pas liée à une commande Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn +msgid "Sales Order" +msgstr "Bon de commande" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order_line +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn +msgid "Sales Order Line" +msgstr "Ligne de commande" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_team_id +msgid "Sales Team" +msgstr "Équipe de vente" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_salesman_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_user_id +#, fuzzy +msgid "Salesperson" +msgstr "Bon de commande" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_min_date +msgid "Scheduled Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_min_date +msgid "" +"Scheduled time for the first part of the shipment to be processed. Setting " +"manually a value here would set it as expected date for all the stock moves." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_max_date +msgid "Scheduled time for the last part of the shipment to be processed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_id +#, fuzzy +msgid "Section" +msgstr "Description" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_categ_id +msgid "Select category for the current product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Select the default payment mode for this customer." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Select the default payment mode for this supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_line_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_sale_warn +msgid "" +"Selecting the \"Warning\" option will notify user with the message, " +"Selecting \"Blocking Message\" will throw an exception with the message and " +"block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_self +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_self +msgid "Self" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0" +msgstr "Autoriser les quantités négatives" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0 and Use Customer Notification" +msgstr "Autoriser les quantités négatives et prévenir le client" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "Send email notification on invoice validated/paid" +msgstr "" +"Envoyer une notification par email lorsque la facture est validée ou payée" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_picking_done_mail +msgid "Send email notification on picking done" +msgstr "Envoi d'e-mail de notification lors des expéditions" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_sent +msgid "Sent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sequence +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_sequence +msgid "Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_removal_strategy_id +msgid "" +"Set a specific removal strategy that will be used regardless of the source " +"location for this product category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_partner_share +#, fuzzy +msgid "Share Partner" +msgstr "Client Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_price +#, fuzzy +msgid "Shipping Cost" +msgstr "Expédition créée" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:25 +#, python-format +msgid "Shipping Created" +msgstr "Expédition créée" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_policy +msgid "Shipping Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_account_payment_mode_create_invoice_on +#, fuzzy +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"If nothing is set, the option falls back to the same option on the Magento " +"store related to the sales order." +msgstr "" +"Définit si la facture est créée dans Magento quand la facture Odoo est " +"validée ou payée.\n" +"Si rien n'est défini, l'option configurée sur la boutique Magento est " +"utilisée." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_create_invoice_on +#, fuzzy +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"This only takes effect if the sales order's related payment method is not " +"giving an option for this by itself. (See Payment Methods)" +msgstr "" +"Définit si la facture est créée dans Magento quand la facture Odoo est " +"validée ou payée.\n" +"Cette option n'est utilisée que si la même option n'est pas définie sur la " +"méthode de paiement de la commande." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_type +msgid "Signup Token Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_valid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_valid +msgid "Signup Token is Valid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_url +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_url +msgid "Signup URL" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_expiration +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_expiration +msgid "Signup expiration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_token +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_token +msgid "Signup token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_small +msgid "Small-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_small +msgid "" +"Small-sized image of this contact. It is automatically resized as a 64x64px " +"image, with aspect ratio preserved. Use this field anywhere a small image is " +"required." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_sort_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_sort_order +msgid "Sort Order" +msgstr "Tri" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_origin +msgid "Source Document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_id +msgid "Source Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_account_analytic_id +msgid "Specific analytic account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "Specific fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_warehouse_id +msgid "Specific warehouse" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_ok +msgid "Specify if the product can be selected in a sales order line." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +" Average Price: The cost price is recomputed at each incoming " +"shipment and used for the product valuation.\n" +" Real Price: The cost price displayed is the price of the " +"last outgoing product (will be use in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +"Average Price: The cost price is recomputed at each incoming shipment and " +"used for the product valuation.\n" +"Real Price: The cost price displayed is the price of the last outgoing " +"product (will be used in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_hs_code +msgid "Standardized code for international shipping and goods declaration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_state_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_state_id +msgid "State" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:51 +#, python-format +msgid "State %s is not exported." +msgstr "L'état %s n'est pas exporté." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_state +msgid "Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_stock_field_id +msgid "Stock Field" +msgstr "Champ de stock" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner -#: field:magento.address,openerp_id:0 field:magento.res.partner,openerp_id:0 -msgid "Partner" -msgstr "Partenaire" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_input +msgid "Stock Input Account" +msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,openerp_id:0 -msgid "Partner Category" -msgstr "Catégorie de partenaire" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_journal +msgid "Stock Journal" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner_category -msgid "Partner Tags" -msgstr "Catégories de partenaires" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_lines +#, fuzzy +msgid "Stock Moves" +msgstr "Champ de stock" #. module: connector_magento -#: field:magento.backend,password:0 -msgid "Password" -msgstr "Mot de passe" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_output +msgid "Stock Output Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_odoo_id +msgid "Stock Picking" +msgstr "Bon de livraison" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "Stock Valuation Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_move_ids +#, fuzzy +msgid "Stock move ids" +msgstr "Champ de stock" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_quant_ids +#, fuzzy +msgid "Stock quant ids" +msgstr "Champ de stock" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_store_id +msgid "Store" +msgstr "Magasin" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_store_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Stores" +msgstr "Magasins" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_store_id +#, fuzzy +msgid "Storeview" +msgstr "Vues Magasin" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_storeview_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +msgid "Storeviews" +msgstr "Vues Magasin" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street +msgid "Street" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street2 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street2 +msgid "Street2" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_payment_method -msgid "Payment Method" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_subtotal +msgid "Subtotal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier_payment_mode_id +#, fuzzy +msgid "Supplier Payment Mode" msgstr "Méthode de paiement" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_stock_picking -msgid "Picking List" -msgstr "Liste de colisage" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Synchronize Metadata" +msgstr "Synchronizer les méta-données" #. module: connector_magento -#: field:magento.stock.picking,picking_method:0 -msgid "Picking Method" -msgstr "Méthode de livraison" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_vat +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_vat +msgid "TIN" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_name +#, fuzzy +msgid "Tag Name" +msgstr "Nom" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id +msgid "Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_tax +msgid "Tax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_tax_class_id +msgid "Tax Class ID" +msgstr "ID de classe de taxe" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_vat +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_vat +msgid "" +"Tax Identification Number. Fill it if the company is subjected to taxes. " +"Used by the some of the legal statements." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_tax_line_ids +msgid "Tax Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_rate +msgid "Tax Rate" +msgstr "Taux de taxe" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax groups are used with some external system like Prestashop" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_id +msgid "Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_name +msgid "" +"Technical field holding the number given to the invoice, automatically set " +"when the invoice is validated then stored to set the same number again if " +"the invoice is cancelled, set to draft and re-validated." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_pricelist_id +msgid "" +"Technical field. Used for searching on pricelists, not stored in database." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_move_ids +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_quant_ids +#, fuzzy +msgid "Technical: used to compute quantities." +msgstr "Entrepôt utilisé pour calculer les quantités en stock." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_note +msgid "Terms and conditions" +msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_pricing:0 -msgid "Prices are managed in OpenERP with pricelists" -msgstr "Les prix de vente sont gérés dans OpenERP avec des listes de prix" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_category_active +msgid "The active field allows you to hide the category without removing it." +msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_pricing:0 +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount +#, fuzzy msgid "" -"Prices are set in OpenERP and exported to Magento.\n" +"The amount computed in Odoo doesn't match with the amount in Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" +"Le montant total calculé par OpenERP ne correspond pas au montant calculé " +"par Magento.\n" +"\n" +"Cause:\n" +"La configuration des taxes est probablement différente entre OpenERP et " +"Magento. Une position fiscale peut avoir modifié le prix final.\n" "\n" -"This installs the module connector_magento_pricing." -msgstr "Les prix sont définis dans OpenERP et exportés vers Magento.\n\nInstalle le module connector_magento_pricing." +"Résolution:\n" +"Contrôler la configuration des taxes et positions fiscales et les corriger " +"si nécessaire." #. module: connector_magento -#: field:magento.storeview,catalog_price_tax_included:0 -msgid "Prices include tax" -msgstr "Prix taxes-incluses" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_related_project_id +msgid "The analytic account related to a sales order." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_product -#: field:magento.product.product,openerp_id:0 -msgid "Product" -msgstr "Article" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_delay +msgid "" +"The average delay in days between the confirmation of the customer order and " +"the delivery of the finished products. It's the time you promise to your " +"customers." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:60 +#, python-format +msgid "The carrier %s does not export tracking numbers." +msgstr "La méthode de livraison %s n'exporte pas les numéros de suivi." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_commercial_partner_id +msgid "" +"The commercial entity that will be used on Journal Entries for this invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_company_id +msgid "The company is automatically set from your user preferences." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/product/importer.py:296 +#, fuzzy, python-format +msgid "" +"The configurable product is not imported in Odoo, because only the simple " +"products are used in the sales orders." +msgstr "" +"Les produits configurables ne sont pas importés dans Odoo, uniquement les " +"produits simples le sont et sont utilisés dans les commandes." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_custom_api_path +msgid "" +"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a " +"custom API path, in that case, the location has to be completed with the " +"custom API path " +msgstr "" +"Le chemin d'API par défaut est \"/index.php/api/xmlrpc\". Activer pour " +"utiliser un chemin d'API personnalisé. Dans ce cas, l'URL de Magento doit " +"être complétée avec le chemin complet" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_position_id +msgid "" +"The fiscal position will determine taxes and accounts used for the partner." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_user_id +msgid "" +"The internal user that is in charge of communicating with this contact if " +"any." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_name +msgid "The name that will be used on account move lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_product_count +msgid "" +"The number of products under this category (Does not consider the children " +"categories)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_account_id +msgid "The partner account used for this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "" +"The partner has at least one unreconciled debit and credit since last time " +"the invoices & payments matching was performed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reference +msgid "The partner reference of this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_tz +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_tz +msgid "" +"The partner's timezone, used to output proper date and time values inside " +"printed reports. It is important to set a value for this field. You should " +"use the same timezone that is otherwise used to pick and render date and " +"time values: your computer's timezone." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_lst_price +msgid "" +"The sale price is managed from the product template. Click on the 'Variant " +"Prices' button to set the extra attribute prices." +msgstr "" + +#. module: connector_magento +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount_tax +#, fuzzy +msgid "" +"The tax amount computed in Odoo doesn't match with the tax amount in " +"Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" +"Les taxes calculées par OpenERP ne correspondent pas aux tax calculées par " +"Magento.\n" +"\n" +"Cause:\n" +"La configuration des taxes est probablement différente entre OpenERP et " +"Magento. Une position fiscale peut avoir modifié le prix final.\n" +"\n" +"Résolution:\n" +"Contrôler la configuration des taxes et positions fiscales et les corriger " +"si nécessaire." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_volume +msgid "The volume in m3." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_weight +msgid "The weight of the contents in Kg, not including any packaging, etc." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:41 +#, python-format +msgid "The wizard must be launched from a magento backend model" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:45 +#, python-format +msgid "The wizard must be launched on a single magento backend instance" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_expense_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"expenses for the current product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_income_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"sales for the current product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_expense_categ_id +msgid "This account will be used for invoices to value expenses." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_income_categ_id +msgid "This account will be used for invoices to value sales." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_delivery_carrier_id +msgid "This delivery method will be used when invoicing from picking." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image +msgid "" +"This field holds the image used as avatar for this contact, limited to " +"1024x1024px" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_variant +msgid "" +"This field holds the image used as image for the product variant, limited to " +"1024x1024px." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_price_extra +msgid "This is the sum of the extra price of all attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#, fuzzy +msgid "" +"This option should respect the same\n" +" configuration as Magento. Pay\n" +" attention to the taxes on the products,\n" +" which should surely include prices when\n" +" this option is activated." +msgstr "" +"L'option doit respecter la même configuration que sur Magento. Attention à " +"bien configurer la taxe des produits qui doit certainement être configurée " +"en taxes incluses si cette option est activée." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "" +"This payment term will be used instead of the default one for purchase " +"orders and vendor bills" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "" +"This payment term will be used instead of the default one for sale orders " +"and customer invoices" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_category -#: field:magento.product.category,openerp_id:0 -msgid "Product Category" -msgstr "Catégorie d'articles" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "" +"This pricelist will be used, instead of the default one, for sales to the " +"current partner" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/delete_synchronizer.py:38 -#, python-format -msgid "Record %s deleted on Magento" -msgstr "Enregistrement %s supprimé sur Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_customer +msgid "" +"This stock location will be used, instead of the default one, as the " +"destination location for goods you send to this partner" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:199 -#, python-format -msgid "Record does no longer exist in Magento" -msgstr "L'enregistrement n'existe plus sur Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for goods you receive from the current partner" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:414 -#, python-format -msgid "Record exported with ID %s on Magento." -msgstr "Enregistrement exporté sur Magento avec l'Id. %s" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_production +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by manufacturing orders." +msgstr "" #. module: connector_magento -#: field:magento.sale.order,openerp_id:0 -msgid "Sale Order" -msgstr "Bons de Commande" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_procurement +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by procurements." +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,openerp_id:0 -msgid "Sale Order Line" -msgstr "Ligne de commande" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_inventory +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated when you do an inventory." +msgstr "" #. module: connector_magento -#: field:magento.backend,sale_prefix:0 -msgid "Sale Prefix" -msgstr "Préfixe de vente" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz +msgid "Timezone" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1075 -#, python-format -msgid "Sale is not linked with a Magento sales order" -msgstr "La commande n'est pas liée à une commande Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz_offset +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz_offset +msgid "Timezone offset" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order -msgid "Sales Order" -msgstr "Bon de commande" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_title +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_title +msgid "Title" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order_line -msgid "Sales Order Line" -msgstr "Ligne de commande" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_to_invoice +#, fuzzy +msgid "To Invoice" +msgstr "Facture" #. module: connector_magento -#: field:magento.storeview,section_id:0 -msgid "Sales Team" -msgstr "Équipe de vente" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_total +msgid "Total" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0" -msgstr "Autoriser les quantités négatives" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount +msgid "Total Amount differs from Magento" +msgstr "Le montant total diffère de Magento" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0 and Use Customer Notification" -msgstr "Autoriser les quantités négatives et prévenir le client" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_total_invoiced +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_total_invoiced +#, fuzzy +msgid "Total Invoiced" +msgstr "Adresse de facturation par défaut" #. module: connector_magento -#: field:magento.store,send_invoice_paid_mail:0 -msgid "Send email notification on invoice validated/paid" -msgstr "Envoyer une notification par email lorsque la facture est validée ou payée" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit +msgid "Total Payable" +msgstr "" #. module: connector_magento -#: field:magento.store,send_picking_done_mail:0 -msgid "Send email notification on picking done" -msgstr "Envoi d'e-mail de notification lors des expéditions" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit +msgid "Total Receivable" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:126 -#: code:addons/connector_magento/tests/test_export_picking.py:89 -#: code:addons/connector_magento/tests/test_export_picking.py:135 -#: code:addons/connector_magento/tests/test_export_picking.py:169 -#, python-format -msgid "Shipping Created" -msgstr "Expédition créée" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount_tax +msgid "Total Tax Amount differs from Magento" +msgstr "Le montant total des taxes diffère de Magento" #. module: connector_magento -#: help:payment.method,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"If nothing is set, the option falls back to the same option on the Magento store related to the sales order." -msgstr "Définit si la facture est créée dans Magento quand la facture Odoo est validée ou payée.\nSi rien n'est défini, l'option configurée sur la boutique Magento est utilisée." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount +msgid "Total amount" +msgstr "Montant total" #. module: connector_magento -#: help:magento.store,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"This only takes effect if the sales order's related payment method is not giving an option for this by itself. (See Payment Methods)" -msgstr "Définit si la facture est créée dans Magento quand la facture Odoo est validée ou payée.\nCette option n'est utilisée que si la même option n'est pas définie sur la méthode de paiement de la commande." +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total amount in the currency of the company, negative for credit notes." +msgstr "" #. module: connector_magento -#: field:magento.storeview,sort_order:0 field:magento.website,sort_order:0 -msgid "Sort Order" -msgstr "Tri" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total amount in the currency of the invoice, negative for credit notes." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1072 -#, python-format -msgid "State %s is not exported." -msgstr "L'état %s n'est pas exporté." +#: model:ir.model.fields,help:connector_magento.field_magento_address_credit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_credit +msgid "Total amount this customer owes you." +msgstr "" #. module: connector_magento -#: field:magento.backend,product_stock_field_id:0 -msgid "Stock Field" -msgstr "Champ de stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount_tax +msgid "Total amount w. tax" +msgstr "Montant total avec taxes" #. module: connector_magento -#: field:magento.stock.picking,openerp_id:0 -msgid "Stock Picking" -msgstr "Bon de livraison" +#: model:ir.model.fields,help:connector_magento.field_magento_address_debit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_debit +msgid "Total amount you have to pay to this vendor." +msgstr "" #. module: connector_magento -#: field:magento.storeview,store_id:0 -msgid "Store" -msgstr "Magasin" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total in Company Currency" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_store -#: view:magento.website:connector_magento.view_magento_website_form -#: field:magento.website,store_ids:0 -msgid "Stores" -msgstr "Magasins" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total in Invoice Currency" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview -#: view:magento.store:connector_magento.view_magento_store_form -#: field:magento.store,storeview_ids:0 -msgid "Storeviews" -msgstr "Vues Magasin" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_total_route_ids +#, fuzzy +msgid "Total routes" +msgstr "Montant total" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Synchronize Metadata" -msgstr "Synchronizer les méta-données" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_track_service +msgid "Track Service" +msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,tax_class_id:0 -msgid "Tax Class ID" -msgstr "ID de classe de taxe" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tracking +msgid "Tracking" +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,tax_rate:0 -msgid "Tax Rate" -msgstr "Taux de taxe" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_tracking_ref +msgid "Tracking Reference" +msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount -msgid "" -"The amount computed in OpenERP doesn't match with the amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." -msgstr "Le montant total calculé par OpenERP ne correspond pas au montant calculé par Magento.\n\nCause:\nLa configuration des taxes est probablement différente entre OpenERP et Magento. Une position fiscale peut avoir modifié le prix final.\n\nRésolution:\nContrôler la configuration des taxes et positions fiscales et les corriger si nécessaire." +#: model:ir.model,name:connector_magento.model_stock_picking +msgid "Transfer" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:80 -#, python-format -msgid "The carrier %s does not export tracking numbers." -msgstr "La méthode de livraison %s n'exporte pas les numéros de suivi." +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "" +"True if reserved quants changed, which mean we might need to recompute the " +"package operations" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/product.py:558 -#, python-format -msgid "" -"The configurable product is not imported in OpenERP, because only the simple" -" products are used in the sales orders." -msgstr "Les produits configurables ne sont pas importés dans Odoo, uniquement les produits simples le sont et sont utilisés dans les commandes." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_type +msgid "Type" +msgstr "" #. module: connector_magento -#: help:magento.backend,use_custom_api_path:0 -msgid "" -"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a" -" custom API path, in that case, the location has to be completed with the " -"custom API path " -msgstr "Le chemin d'API par défaut est \"/index.php/api/xmlrpc\". Activer pour utiliser un chemin d'API personnalisé. Dans ce cas, l'URL de Magento doit être complétée avec le chemin complet" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_code +msgid "Type of Operation" +msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount_tax -msgid "" -"The tax amount computed in OpenERP doesn't match with the tax amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." -msgstr "Les taxes calculées par OpenERP ne correspondent pas aux tax calculées par Magento.\n\nCause:\nLa configuration des taxes est probablement différente entre OpenERP et Magento. Une position fiscale peut avoir modifié le prix final.\n\nRésolution:\nContrôler la configuration des taxes et positions fiscales et les corriger si nécessaire." +#: code:addons/connector_magento/models/magento_website/importer.py:22 +#, python-format +msgid "Undefined" +msgstr "Indéfini" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_export_partner:0 -msgid "This installs the module connector_magento_export_partner." -msgstr "Installe le module connector_magento_export_partner." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_unit +msgid "Unit Price" +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "" -"This option should respect the same\n" -" configuration as Magento. Pay\n" -" attention to the taxes on the products,\n" -" which should surely include prices when\n" -" this option is activated." -msgstr "L'option doit respecter la même configuration que sur Magento. Attention à bien configurer la taxe des produits qui doit certainement être configurée en taxes incluses si cette option est activée." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of Measure" +msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount -msgid "Total Amount differs from Magento" -msgstr "Le montant total diffère de Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of measurement for Weight" +msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount_tax -msgid "Total Tax Amount differs from Magento" -msgstr "Le montant total des taxes diffère de Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread +msgid "Unread Messages" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount:0 -msgid "Total amount" -msgstr "Montant total" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Unread Messages Counter" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount_tax:0 -msgid "Total amount w. tax" -msgstr "Montant total avec taxes" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_untaxed +#, fuzzy +msgid "Untaxed Amount" +msgstr "Montant total" #. module: connector_magento -#: code:addons/connector_magento/magento_model.py:575 -#, python-format -msgid "Undefined" -msgstr "Indéfini" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed_signed +msgid "Untaxed Amount in Company Currency" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Update" msgstr "Mettre à jour" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Update all the products stock quantities" msgstr "Mettre à jour toutes les quantités en stock" #. module: connector_magento -#: field:magento.address,updated_at:0 -#: field:magento.product.product,updated_at:0 -#: field:magento.res.partner,updated_at:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_updated_at msgid "Updated At (on Magento)" msgstr "Mis à jour le (sur Magento)" #. module: connector_magento -#: help:magento.backend,location:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_location msgid "Url to magento application" msgstr "URL vers l'application Magento" @@ -1199,84 +4329,315 @@ msgid "Use Default Config" msgstr "Utiliser la configuration par défaut" #. module: connector_magento -#: field:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_auth_basic msgid "Use HTTP Auth Basic" msgstr "Utiliser l'authentification HTTP \"basic\"" #. module: connector_magento -#: help:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_auth_basic msgid "" "Use a Basic Access Authentication for the API. The Magento server could be " "configured to restrict access using a HTTP authentication based on a " "username and a password." -msgstr "Utiliser une authentification HTTP \"basic\" pour l'API. À utiliser lorsque le serveur Magento restreint l'accès à l'API avec une authentification HTTP basée sur un nom d'utilisateur et un mot de passe." +msgstr "" +"Utiliser une authentification HTTP \"basic\" pour l'API. À utiliser lorsque " +"le serveur Magento restreint l'accès à l'API avec une authentification HTTP " +"basée sur un nom d'utilisateur et un mot de passe." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_type +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_type +msgid "" +"Used to select automatically the right address according to the context in " +"sales and purchases documents." +msgstr "" #. module: connector_magento -#: field:magento.backend,username:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_username msgid "Username" msgstr "Utilisateur" #. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_ids +#, fuzzy +msgid "Users" +msgstr "Utilisateur" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_currency_id +msgid "Utility field to express amount currency" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 #: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 msgid "Validate" msgstr "Valider" #. module: connector_magento -#: field:magento.backend,version:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_valuation +msgid "Valuation" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_variant +msgid "Variant Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price_extra +msgid "Variant Price Extra" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_supplier +#, fuzzy +msgid "Vendor Location" +msgstr "Emplacement" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "Vendor Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference +msgid "Vendor Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_supplier_taxes_id +msgid "Vendor Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_seller_ids +msgid "Vendors" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_version msgid "Version" msgstr "Version" #. module: connector_magento -#: field:magento.backend,warehouse_id:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_volume +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_volume +msgid "Volume" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_warehouse_id msgid "Warehouse" msgstr "Entrepôt" #. module: connector_magento -#: help:magento.backend,warehouse_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_warehouse_id msgid "Warehouse used to compute the stock quantities." msgstr "Entrepôt utilisé pour calculer les quantités en stock." #. module: connector_magento -#: help:magento.backend,password:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warranty +msgid "Warranty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_password msgid "Webservice password" msgstr "Mot de passe du webservice" #. module: connector_magento -#: help:magento.backend,username:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_username msgid "Webservice user" msgstr "Utilisateur du webservice" #. module: connector_magento -#: field:magento.backend,website_ids:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_website_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website msgid "Website" msgstr "Site web" #. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_website +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_website +msgid "Website of Partner or Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_website_ids #: model:ir.ui.menu,name:connector_magento.menu_magento_website -#: view:magento.backend:connector_magento.view_magento_backend_form -#: field:magento.product.product,website_ids:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Websites" msgstr "Sites web" #. module: connector_magento -#: help:magento.storeview,import_orders_from_date:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_weight +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight +msgid "Weight" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_shipping_weight +#, fuzzy +msgid "Weight for Shipping" +msgstr "Adresse de livraison par défaut" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. This is the default " +"value for all products in this category. It can also directly be set on each " +"product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_input +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. When not set on the " +"product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. This is the " +"default value for all products in this category. It can also directly be set " +"on each product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_output +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. When not set on " +"the product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_journal +msgid "" +"When doing real-time inventory valuation, this is the Accounting Journal in " +"which entries will be automatically posted when stock moves are processed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "" +"When real-time inventory valuation is enabled on a product, this account " +"will hold the current value of the products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_zip +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_zip +msgid "Zip" +msgstr "" + +#. module: connector_magento +#: selection:magento.binding.backend.read,state:0 +msgid "choose" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_import_orders_from_date msgid "" "do not consider non-imported sale orders before this date. Leave empty to " "import all sale orders" -msgstr "Ignore les commandes non importées avant cette date. Laisser vide pour importer toutes les commandes." +msgstr "" +"Ignore les commandes non importées avant cette date. Laisser vide pour " +"importer toutes les commandes." #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com" msgstr "Ex. http://mon.magento.com" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com/admin" msgstr "Ex.: http://my.magento.com/admin" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: selection:magento.binding.backend.read,state:0 +#, fuzzy +msgid "get" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "mag-" msgstr "mag-" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding_backend_read +msgid "magento.binding.backend.read" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_config_specializer +msgid "magento.config.specializer" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner_category +#, fuzzy +msgid "magento.res.partner.category" +msgstr "Catégorie parente dans Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_warehouse_id +#, fuzzy +msgid "warehouse" +msgstr "Entrepôt" + +#~ msgid "Connector Configuration" +#~ msgstr "Configuration du connecteur" + +#~ msgid "Export Partners to Magento (experimental)" +#~ msgstr "" +#~ "Exporter les clients vers Magento (expérimental, ne pas utiliser en " +#~ "production)" + +#~ msgid "Extensions" +#~ msgstr "Extensions" + +#~ msgid "Last synchronization date" +#~ msgstr "Dernière date de synchronisation" + +#~ msgid "Magentoerpconnect" +#~ msgstr "Magentoerpconnect" + +#~ msgid "Picking List" +#~ msgstr "Liste de colisage" + +#~ msgid "Prices are managed in OpenERP with pricelists" +#~ msgstr "Les prix de vente sont gérés dans OpenERP avec des listes de prix" + +#~ msgid "" +#~ "Prices are set in OpenERP and exported to Magento.\n" +#~ "\n" +#~ "This installs the module connector_magento_pricing." +#~ msgstr "" +#~ "Les prix sont définis dans OpenERP et exportés vers Magento.\n" +#~ "\n" +#~ "Installe le module connector_magento_pricing." + +#~ msgid "This installs the module connector_magento_export_partner." +#~ msgstr "Installe le module connector_magento_export_partner." diff --git a/connector_magento/i18n/it.po b/connector_magento/i18n/it.po index ec807b1a5..165cbcc5a 100644 --- a/connector_magento/i18n/it.po +++ b/connector_magento/i18n/it.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * connector_magento -# +# # Translators: # FIRST AUTHOR , 2014 # Giacomo , 2015 @@ -12,20 +12,77 @@ msgstr "" "POT-Creation-Date: 2015-07-22 09:38+0000\n" "PO-Revision-Date: 2015-08-02 23:46+0000\n" "Last-Translator: Giacomo \n" -"Language-Team: Italian (http://www.transifex.com/oca/OCA-connector-magento-8-0/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/oca/OCA-connector-" +"magento-8-0/language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: connector_magento -#: help:magento.sale.order,magento_order_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_state +msgid "" +" * Draft: not confirmed yet and will not be scheduled until confirmed\n" +" * Waiting Another Operation: waiting for another move to proceed before it " +"becomes automatically available (e.g. in Make-To-Order flows)\n" +" * Waiting Availability: still waiting for the availability of products\n" +" * Partially Available: some products are available and reserved\n" +" * Ready to Transfer: products reserved, simply waiting for confirmation.\n" +" * Transferred: has been processed, can't be modified or cancelled anymore\n" +" * Cancelled: has been cancelled, can't be confirmed anymore" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_state +msgid "" +" * The 'Draft' status is used when a user is encoding a new and unconfirmed " +"Invoice.\n" +" * The 'Pro-forma' status is used when the invoice does not have an invoice " +"number.\n" +" * The 'Open' status is used when user creates invoice, an invoice number is " +"generated. It stays in the open status till the user pays the invoice.\n" +" * The 'Paid' status is set automatically when the invoice is paid. Its " +"related journal entries may or may not be reconciled.\n" +" * The 'Cancelled' status is used when user cancel invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_count +msgid "# Product Variants" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_product_count +#, fuzzy +msgid "# Products" +msgstr "Prodotto" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sales_count +msgid "# Sales" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_count +#, fuzzy +msgid "# of Invoices" +msgstr "Fattura" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_count +#, fuzzy +msgid "# of Sales Order" +msgstr "Ordini di vendita" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_magento_order_id msgid "'order_id' field in Magento" msgstr "il campo 'order_id' in Magento" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form msgid "(recompute)" msgstr "(ricalcola)" @@ -45,1151 +102,4218 @@ msgstr "Un backend con lo stesso prefisso di vendita esiste già" #: sql_constraint:magento.product.product:0 #: sql_constraint:magento.res.partner:0 #: sql_constraint:magento.res.partner.category:0 -#: sql_constraint:magento.sale.order:0 -#: sql_constraint:magento.sale.order.line:0 +#: sql_constraint:magento.sale.order:0 sql_constraint:magento.sale.order.line:0 #: sql_constraint:magento.stock.picking:0 sql_constraint:magento.store:0 #: sql_constraint:magento.storeview:0 sql_constraint:magento.website:0 msgid "A binding already exists with the same Magento ID." msgstr "Un collegamento con lo stesso ID Magento esiste già" +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_type +msgid "" +"A category of the view type is a virtual category that can be used as the " +"parent of another category to create a hierarchical structure." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_sale +msgid "" +"A description of the Product that you want to communicate to your customers. " +"This description will be copied to every Sale Order, Delivery Order and " +"Customer Invoice/Refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_purchase +msgid "" +"A description of the Product that you want to communicate to your vendors. " +"This description will be copied to every Purchase Order, Receipt and Vendor " +"Bill/Refund." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "" +"A parent sales order has been canceled on the backend and needs to be " +"canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_id +#, fuzzy +msgid "A parent sales order is a sales order replaced by this one." +msgstr "L'ordine di vendita di Magento è già in stato %s" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "A parent sales order needs cancel" +msgstr "" + #. module: connector_magento #: sql_constraint:magento.address:0 msgid "A partner address can only have one binding by backend." -msgstr "Un indirizzo di un partner può avere solo un collegamento per ogni backend." +msgstr "" +"Un indirizzo di un partner può avere solo un collegamento per ogni backend." #. module: connector_magento -#: help:magento.backend,sale_prefix:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description +msgid "" +"A precise description of the Product, used only for internal information " +"purposes." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_sale_prefix +#, fuzzy msgid "" "A prefix put before the name of imported sales orders.\n" -"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, will be named 'mag-100000692' in OpenERP." -msgstr "Un prefisso messo prima del nome degli ordini di vendita importati.\nPer esempio, se il prefisso è 'mag-', l'ordine di vendita con numero 100000692 su Magento, verrà chiamato 'mag-100000692' in OpenERP." +"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, " +"will be named 'mag-100000692' in Odoo." +msgstr "" +"Un prefisso messo prima del nome degli ordini di vendita importati.\n" +"Per esempio, se il prefisso è 'mag-', l'ordine di vendita con numero " +"100000692 su Magento, verrà chiamato 'mag-100000692' in OpenERP." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_type +msgid "" +"A stockable product is a product for which you manage stock. The \"Inventory" +"\" app has to be installed.\n" +"A consumable product, on the other hand, is a product for which stock is not " +"managed.\n" +"A service is a non-material product you provide.\n" +"A digital content is a non-material product you sell online. The files " +"attached to the products are the one that are sold on the e-commerce such as " +"e-books, music, pictures,... The \"Digital Product\" module has to be " +"installed." +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "API" msgstr "API" #. module: connector_magento -#: field:magento.address,is_magento_order_address:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_account_id +msgid "Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "Account Payable" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "Account Receivable" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date +msgid "Accounting Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction +msgid "Action Needed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_bank_account_required +msgid "" +"Activate this option if this payment method requires you to know the bank " +"account number of your customer or supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_active +msgid "Active" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_comment +#, fuzzy +msgid "Additional Information" +msgstr "Informazioni" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_type +msgid "Address Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_magento_order_address msgid "Address from a Magento Order" msgstr "Indirizzo da un ordine di Magento" #. module: connector_magento -#: field:magento.backend,admin_location:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_admin_location msgid "Admin Location" msgstr "Locazione della sezione admin" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Advanced Configuration" msgstr "Configurazione avanzata" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:173 +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_all_qty_delivered +msgid "All quantities delivered" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "Allow moving packs" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:69 #, python-format msgid "Already exported" msgstr "Già esportato" #. module: connector_magento -#: code:addons/connector_magento/sale.py:611 +#: code:addons/connector_magento/models/sale_order/importer.py:368 #, python-format msgid "Already imported" msgstr "Già importato" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:208 +#: code:addons/connector_magento/components/importer.py:198 #, python-format msgid "Already up-to-date." msgstr "Già aggiornato" #. module: connector_magento -#: help:magento.res.partner,consider_as_company:0 -msgid "" -"An account imported with a 'company' in the billing address is considered as a company.\n" -" The partner takes the name of the company and is not merged with the billing address." -msgstr "Un accont importato con una 'azienda' nell'indirizzo di fatturazione viene considerata come un'azienda.\nIl partner prende il nome dell'azienda e non viene unito all'indirizzo di fatturazione." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual +msgid "Amount Due" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_backend -msgid "Backends" -msgstr "Backends" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Amount Due in Company Currency" +msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_password:0 -msgid "Basic Auth. Password" -msgstr "Password per l'autenticazione basic" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_signed +msgid "Amount Due in Invoice Currency" +msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_username:0 -msgid "Basic Auth. Username" -msgstr "Username per l'autenticazione basic" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_consider_as_company +msgid "" +"An account imported with a 'company' in the billing address is considered as " +"a company.\n" +" The partner takes the name of the company and is not merged with the " +"billing address." +msgstr "" +"Un accont importato con una 'azienda' nell'indirizzo di fatturazione viene " +"considerata come un'azienda.\n" +"Il partner prende il nome dell'azienda e non viene unito all'indirizzo di " +"fatturazione." #. module: connector_magento -#: help:magento.backend,auth_basic_password:0 -msgid "Basic access authentication web server side password" -msgstr "La password lato web server per l'autenticazione basic" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_related_project_id +msgid "Analytic Account" +msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_username:0 -msgid "Basic access authentication web server side username" -msgstr "Lo username lato web server per l'autenticazione basic" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_analytic_tag_ids +msgid "Analytic Tags" +msgstr "" #. module: connector_magento -#: field:res.partner,birthday:0 -msgid "Birthday" -msgstr "Data di nascita" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_account_analytic_id +msgid "Analytic account" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "" -"By clicking on the buttons,\n" -" you will initiate the synchronizations\n" -" with Magento.\n" -" Note that the import or exports\n" -" won't be done directly,\n" -" they will create 'Jobs'\n" -" executed as soon as possible." -msgstr "Cliccando sul bottone\nverrà iniziata la sincronizzazione\ncon Magento.\nNota che l'import o l'export\nnon saranno fatti direttamente\nma verranno messi nella coda dei Job\ned eseguiti appena possibile." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_value_ids +msgid "Attributes" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:180 -#, python-format -msgid "" -"Canceled: the delivery order does not contain lines from the original sale " -"order." -msgstr "Annullato: l'ordine di consegna non contiene linee dell'ordine di vendita originale" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_workflow_process_id +msgid "Automatic Workflow" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_delivery_carrier -msgid "Carrier" -msgstr "Trasportatore" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backorder_id +#, fuzzy +msgid "Back Order of" +msgstr "Ordine di vendita" #. module: connector_magento -#: help:magento.storeview,no_sales_order_sync:0 -msgid "" -"Check if the storeview is active in Magento but its sales orders should not " -"be imported." -msgstr "Seleziona se la storeview è attiva in Magento ma i suoi ordini di vendita non devono essere importati." +#: model:ir.ui.menu,name:connector_magento.menu_magento_backend +msgid "Backends" +msgstr "Backends" #. module: connector_magento -#: help:magento.product.product,no_stock_sync:0 -msgid "Check this to exclude the product from stock synchronizations." -msgstr "Verifica se questo esclude il prodotto dalle sincronizzazioni di magazzino" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_account_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_account_count +msgid "Bank" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_bank_id +msgid "Bank Account" +msgstr "" #. module: connector_magento -#: help:magento.backend,product_stock_field_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_bank_id msgid "" -"Choose the field of the product which will be used for stock inventory updates.\n" -"If empty, Quantity Available is used." -msgstr "Seleziona il campo del prodotto che verrà usato per gli aggiornamenti di inventario di stock.\nSe vuoto, verrà usato il campo 'Quantità disponibile'" +"Bank Account Number to which the invoice will be paid. A Company bank " +"account if this is a Customer Invoice or Vendor Refund, otherwise a Partner " +"bank account number." +msgstr "" #. module: connector_magento -#: field:magento.storeview,code:0 field:magento.website,code:0 -msgid "Code" -msgstr "Codice" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_bank_account_required +msgid "Bank Account Required" +msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,company:0 -msgid "Company" -msgstr "Azienda" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_ids +msgid "Banks" +msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Complete" -msgstr "Completa" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_barcode +msgid "Barcode" +msgstr "" #. module: connector_magento -#: field:magento.product.product,magento_qty:0 -msgid "Computed Quantity" -msgstr "Calcola la quantità" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_list_price +msgid "" +"Base price to compute the customer price. Sometimes called the catalog price." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_connector_config_settings -msgid "Connector Configuration" -msgstr "Configurazione del connettore" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic Auth. Password" +msgstr "Password per l'autenticazione basic" #. module: connector_magento -#: field:magento.res.partner,consider_as_company:0 -msgid "Considered as company" -msgstr "Considerata come un'azienda" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic Auth. Username" +msgstr "Username per l'autenticazione basic" #. module: connector_magento -#: view:payment.method:connector_magento.payment_method_view_form -msgid "Create invoice on" -msgstr "Crea fattura per" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic access authentication web server side password" +msgstr "La password lato web server per l'autenticazione basic" #. module: connector_magento -#: field:magento.store,create_invoice_on:0 -#: field:payment.method,create_invoice_on:0 -msgid "Create invoice on action" -msgstr "Crea la fattura dopo l'azione" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic access authentication web server side username" +msgstr "Lo username lato web server per l'autenticazione basic" #. module: connector_magento -#: field:magento.address,created_at:0 -#: field:magento.product.product,created_at:0 -#: field:magento.res.partner,created_at:0 -msgid "Created At (on Magento)" -msgstr "Creato il (su Magento)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image +msgid "Big-sized image" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,create_uid:0 -#: field:magento.address,create_uid:0 field:magento.backend,create_uid:0 -#: field:magento.product.category,create_uid:0 -#: field:magento.product.product,create_uid:0 -#: field:magento.res.partner,create_uid:0 -#: field:magento.res.partner.category,create_uid:0 -#: field:magento.sale.order,create_uid:0 -#: field:magento.sale.order.line,create_uid:0 -#: field:magento.stock.picking,create_uid:0 field:magento.store,create_uid:0 -#: field:magento.storeview,create_uid:0 field:magento.website,create_uid:0 -msgid "Created by" -msgstr "Creato da" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_birthday +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_users_birthday +msgid "Birthday" +msgstr "Data di nascita" #. module: connector_magento -#: field:magento.account.invoice,create_date:0 -#: field:magento.address,create_date:0 field:magento.backend,create_date:0 -#: field:magento.product.category,create_date:0 -#: field:magento.product.product,create_date:0 -#: field:magento.res.partner,create_date:0 -#: field:magento.res.partner.category,create_date:0 -#: field:magento.sale.order,create_date:0 -#: field:magento.sale.order.line,create_date:0 -#: field:magento.stock.picking,create_date:0 field:magento.store,create_date:0 -#: field:magento.storeview,create_date:0 field:magento.website,create_date:0 -msgid "Created on" -msgstr "Creato il" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_bounce +msgid "Bounce" +msgstr "" #. module: connector_magento -#: field:magento.backend,use_custom_api_path:0 -msgid "Custom Api Path" -msgstr "Percorso del API personalizzato" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_bulk +msgid "Bulk Weight" +msgstr "" #. module: connector_magento -#: field:magento.address,is_default_billing:0 -msgid "Default Invoice" -msgstr "Fattura di default" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#, fuzzy +msgid "" +"By clicking on the buttons,\n" +" you will initiate the synchronizations\n" +" with Magento.\n" +" Note that the import or exports\n" +" won't be done directly,\n" +" they will create 'Jobs'\n" +" executed as soon as possible." +msgstr "" +"Cliccando sul bottone\n" +"verrà iniziata la sincronizzazione\n" +"con Magento.\n" +"Nota che l'import o l'export\n" +"non saranno fatti direttamente\n" +"ma verranno messi nella coda dei Job\n" +"ed eseguiti appena possibile." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered_updateable +#, fuzzy +msgid "Can Edit Delivered" +msgstr "Ordine di consegna di Magento" #. module: connector_magento -#: field:magento.backend,default_lang_id:0 -msgid "Default Language" -msgstr "Lingua di default" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_purchase_ok +msgid "Can be Purchased" +msgstr "" #. module: connector_magento -#: field:magento.backend,default_category_id:0 -msgid "Default Product Category" -msgstr "Categoria di prodotto di default" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_rental +msgid "Can be Rent" +msgstr "" #. module: connector_magento -#: field:magento.address,is_default_shipping:0 -msgid "Default Shipping" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_ok +msgid "Can be Sold" msgstr "" #. module: connector_magento -#: field:magento.product.category,description:0 -msgid "Description" -msgstr "Descrizione" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Cancel" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Do Not Manage Stock" -msgstr "Non gestire il magazzino" +#: code:addons/connector_magento/models/sale_order/common.py:114 +#, python-format +msgid "Cancel sales order %s" +msgstr "" #. module: connector_magento -#: help:magento.store,send_invoice_paid_mail:0 -msgid "" -"Does the invoice export/creation should send an email notification on " -"Magento side?" -msgstr "Si vuole che l'esportazione/creazione di fatture invii un email di notifica da Magento?" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_canceled_in_backend +msgid "Canceled in backend" +msgstr "" #. module: connector_magento -#: help:magento.store,send_picking_done_mail:0 +#: code:addons/connector_magento/models/stock_picking/exporter.py:76 +#, python-format msgid "" -"Does the picking export/creation should send an email notification on " -"Magento side?" -msgstr "L'esportazione/creazione di un picking dovrebbe inviare una email di notifica lato Magento?" +"Canceled: the delivery order does not contain lines from the original sale " +"order." +msgstr "" +"Annullato: l'ordine di consegna non contiene linee dell'ordine di vendita " +"originale" #. module: connector_magento -#: field:magento.res.partner,emailid:0 -msgid "E-mail address" -msgstr "Indirizzo email" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_cancellation_resolved +msgid "Cancellation from the backend resolved" +msgstr "" #. module: connector_magento -#: field:magento.storeview,enabled:0 -msgid "Enabled" -msgstr "Attiva" +#: model:ir.model,name:connector_magento.model_delivery_carrier +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_id +msgid "Carrier" +msgstr "Trasportatore" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_export_partner:0 -msgid "Export Partners to Magento (experimental)" -msgstr "Esporta i partner verso Magento (sperimentale)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_from_categ_ids +msgid "Category Routes" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_export_tracking:0 -msgid "Export tracking numbers" -msgstr "Esporta i numeri di tracciamento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_type +msgid "Category Type" +msgstr "" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Extensions" -msgstr "Estensioni" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_channel_ids +msgid "Channels" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,guest_customer:0 -msgid "Guest Customer" -msgstr "Cliente ospite" +#: model:ir.model.fields,help:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_is_company +msgid "Check if the contact is a company, otherwise it is a person" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "HTTP Authentication" -msgstr "Autenticazione HTTP" +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "" +"Check if the storeview is active in Magento but its sales orders should not " +"be imported." +msgstr "" +"Seleziona se la storeview è attiva in Magento ma i suoi ordini di vendita " +"non devono essere importati." #. module: connector_magento -#: field:magento.account.invoice,id:0 field:magento.address,id:0 -#: field:magento.backend,id:0 field:magento.binding,id:0 -#: field:magento.product.category,id:0 field:magento.product.product,id:0 -#: field:magento.res.partner,id:0 field:magento.res.partner.category,id:0 -#: field:magento.sale.order,id:0 field:magento.sale.order.line,id:0 -#: field:magento.stock.picking,id:0 field:magento.store,id:0 -#: field:magento.storeview,id:0 field:magento.website,id:0 -msgid "ID" -msgstr "ID" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Check the existance of quants linked to this picking" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,magento_id:0 -#: field:magento.address,magento_id:0 field:magento.binding,magento_id:0 -#: field:magento.product.category,magento_id:0 -#: field:magento.product.product,magento_id:0 -#: field:magento.res.partner,magento_id:0 -#: field:magento.res.partner.category,magento_id:0 -#: field:magento.sale.order,magento_id:0 -#: field:magento.sale.order.line,magento_id:0 -#: field:magento.stock.picking,magento_id:0 field:magento.store,magento_id:0 -#: field:magento.storeview,magento_id:0 field:magento.website,magento_id:0 -msgid "ID on Magento" -msgstr "ID su Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Check the existence of pack operation on the picking" +msgstr "" #. module: connector_magento -#: help:magento.backend,default_category_id:0 -msgid "" -"If a default category is selected, products imported without a category will" -" be linked to it." -msgstr "Se si sceglie una categoria di default, i prodotti importati senza categoria verranno assegnati alla categoria scelta" +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer +msgid "Check this box if this contact is a customer." +msgstr "" #. module: connector_magento -#: help:magento.backend,default_lang_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier msgid "" -"If a default language is selected, the records will be imported in the translation of this language.\n" -"Note that a similar configuration exists for each storeview." -msgstr "Se una lingua di default viene selezionata, i record verranno importati nella traduzione di quella lingua.\nNota una configurazione simile esiste per ogni storeview." +"Check this box if this contact is a vendor. If it's not checked, purchase " +"people will not see it when encoding a purchase order." +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders" -msgstr "Importa gli ordini di vendita" +#: model:ir.model.fields,help:connector_magento.field_magento_address_employee +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_employee +msgid "Check this box if this contact is an Employee." +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders since" -msgstr "Importa gli ordini di vendita dal" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_no_stock_sync +msgid "Check this to exclude the product from stock synchronizations." +msgstr "" +"Verifica se questo esclude il prodotto dalle sincronizzazioni di magazzino" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import all customer groups" -msgstr "Importato tutti i gruppi di clienti" +#: code:addons/connector_magento/models/magento_backend/common.py:234 +#, python-format +msgid "" +"Check your configuration, we can't get the data. Here is the error:\n" +"%s" +msgstr "" #. module: connector_magento -#: field:magento.backend,import_categories_from_date:0 -msgid "Import categories from date" -msgstr "Importa le categorie dalla data" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_child_id +#, fuzzy +msgid "Child Categories" +msgstr "Categorie figlie di Magento" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import in background" -msgstr "Importa in background" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_child_ids +msgid "Child Tags" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import partners from all websites" -msgstr "Importa i partner da tutti i websites" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_product_stock_field_id +msgid "" +"Choose the field of the product which will be used for stock inventory " +"updates.\n" +"If empty, Quantity Available is used." +msgstr "" +"Seleziona il campo del prodotto che verrà usato per gli aggiornamenti di " +"inventario di stock.\n" +"Se vuoto, verrà usato il campo 'Quantità disponibile'" #. module: connector_magento -#: field:magento.website,import_partners_from_date:0 -msgid "Import partners from date" -msgstr "Importa i partner dalla data" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_city +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_city +msgid "City" +msgstr "" #. module: connector_magento -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import partners since" -msgstr "Importa i partner dal" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Close" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products categories since" -msgstr "Importa le categorie prodotto dal" +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_code +msgid "Code" +msgstr "Codice" #. module: connector_magento -#: field:magento.backend,import_products_from_date:0 -msgid "Import products from date" -msgstr "Importa i prodotti dalla data" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_color +msgid "Color Index" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products since" -msgstr "Importa i prodotti dal" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_partner_id +msgid "Commercial Entity" +msgstr "" #. module: connector_magento -#: field:magento.storeview,import_orders_from_date:0 -msgid "Import sale orders from date" -msgstr "Importa gli ordini di vendita dalla data" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref_company_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref_company_ids +msgid "Companies that refers to partner" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import sales orders from all store views" -msgstr "Importa ordini di vendita da tutte le viste negozio." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_company_id +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_res_users_company +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Company" +msgstr "Azienda" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Imports" -msgstr "Importa" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_currency_id +#, fuzzy +msgid "Company Currency" +msgstr "Azienda" #. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Informations" -msgstr "Informazioni" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_name +#, fuzzy +msgid "Company Name" +msgstr "Azienda" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form -msgid "Inventory Options" -msgstr "Opzioni di inventario" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_company_name +#, fuzzy +msgid "Company Name Entity" +msgstr "Calcola la quantità" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_account_invoice -#: field:magento.account.invoice,openerp_id:0 -msgid "Invoice" -msgstr "Fattura" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_type +#, fuzzy +msgid "Company Type" +msgstr "Azienda" #. module: connector_magento -#: code:addons/connector_magento/invoice.py:122 -#: code:addons/connector_magento/tests/test_export_invoice.py:225 -#, python-format -msgid "Invoice Created" -msgstr "Fattura creata" +#: selection:magento.stock.picking,picking_method:0 +msgid "Complete" +msgstr "Completa" #. module: connector_magento -#: field:magento.storeview,lang_id:0 -msgid "Language" -msgstr "Lingua" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contact_address +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contact_address +#, fuzzy +msgid "Complete Address" +msgstr "Completa" #. module: connector_magento -#: field:magento.account.invoice,write_uid:0 field:magento.address,write_uid:0 -#: field:magento.backend,write_uid:0 -#: field:magento.product.category,write_uid:0 -#: field:magento.product.product,write_uid:0 -#: field:magento.res.partner,write_uid:0 -#: field:magento.res.partner.category,write_uid:0 -#: field:magento.sale.order,write_uid:0 -#: field:magento.sale.order.line,write_uid:0 -#: field:magento.stock.picking,write_uid:0 field:magento.store,write_uid:0 -#: field:magento.storeview,write_uid:0 field:magento.website,write_uid:0 -msgid "Last Updated by" -msgstr "Ultimo aggiornamento da" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date_done +msgid "Completion Date of Transfer" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,write_date:0 -#: field:magento.address,write_date:0 field:magento.backend,write_date:0 -#: field:magento.product.category,write_date:0 -#: field:magento.product.product,write_date:0 -#: field:magento.res.partner,write_date:0 -#: field:magento.res.partner.category,write_date:0 -#: field:magento.sale.order,write_date:0 -#: field:magento.sale.order.line,write_date:0 -#: field:magento.stock.picking,write_date:0 field:magento.store,write_date:0 -#: field:magento.storeview,write_date:0 field:magento.website,write_date:0 -msgid "Last Updated on" -msgstr "Ultimo aggiornamento il" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_qty +msgid "Computed Quantity" +msgstr "Calcola la quantità" #. module: connector_magento -#: help:magento.product.product,magento_qty:0 -msgid "Last computed quantity to send on Magento." -msgstr "L'ultima quantità calcolata da inviare a Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_confirmation_date +#, fuzzy +msgid "Confirmation Date" +msgstr "Configurazione principale" #. module: connector_magento -#: field:magento.account.invoice,sync_date:0 field:magento.address,sync_date:0 -#: field:magento.binding,sync_date:0 -#: field:magento.product.category,sync_date:0 -#: field:magento.product.product,sync_date:0 -#: field:magento.res.partner,sync_date:0 -#: field:magento.res.partner.category,sync_date:0 -#: field:magento.sale.order,sync_date:0 -#: field:magento.sale.order.line,sync_date:0 -#: field:magento.stock.picking,sync_date:0 field:magento.store,sync_date:0 -#: field:magento.storeview,sync_date:0 field:magento.website,sync_date:0 -msgid "Last synchronization date" -msgstr "Data ultima sincronizzazione" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_consider_as_company +msgid "Considered as company" +msgstr "Considerata come un'azienda" #. module: connector_magento -#: field:magento.backend,location:0 -msgid "Location" -msgstr "Locazione" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_child_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_child_ids +msgid "Contacts" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_root -#: view:payment.method:connector_magento.payment_method_view_form -#: view:res.partner.category:connector_magento.view_partner_category_form -msgid "Magento" -msgstr "Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contracts_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contracts_count +msgid "Contracts" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_address -#: view:magento.address:connector_magento.view_magento_address_form -#: view:magento.address:connector_magento.view_magento_address_tree -msgid "Magento Address" -msgstr "Indirizzo di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_standard_price +msgid "Cost" +msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_address_bind_ids:0 -msgid "Magento Address Bindings" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_cost_method +msgid "Cost method" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_backend -#: field:magento.account.invoice,backend_id:0 -#: field:magento.address,backend_id:0 -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.backend:connector_magento.view_magento_backend_tree -#: field:magento.binding,backend_id:0 -#: field:magento.product.category,backend_id:0 -#: field:magento.product.product,backend_id:0 -#: field:magento.res.partner,backend_id:0 -#: field:magento.res.partner.category,backend_id:0 -#: field:magento.sale.order,backend_id:0 -#: field:magento.sale.order.line,backend_id:0 -#: field:magento.stock.picking,backend_id:0 field:magento.store,backend_id:0 -#: field:magento.storeview,backend_id:0 field:magento.website,backend_id:0 -msgid "Magento Backend" -msgstr "Il backend Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_standard_price +msgid "" +"Cost of the product template used for standard stock valuation in accounting " +"and used as a base price on purchase orders. Expressed in the default unit " +"of measure of the product." +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_backend -msgid "Magento Backends" -msgstr "I backend Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_cost_method +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_cost_method +#, fuzzy +msgid "Costing Method" +msgstr "Metodo di picking" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_binding -#: model:ir.model,name:connector_magento.model_magento_res_partner_category -msgid "Magento Binding (abstract)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_count +msgid "Count Payment Token" msgstr "" #. module: connector_magento -#: view:account.invoice:connector_magento.view_invoice_magento_form -#: field:account.invoice,magento_bind_ids:0 -#: view:product.category:connector_magento.view_product_category_form -#: field:product.category,magento_bind_ids:0 -#: view:product.product:connector_magento.product_normal_form_view -#: field:product.product,magento_bind_ids:0 -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_bind_ids:0 -#: field:res.partner.category,magento_bind_ids:0 -#: field:sale.order,magento_bind_ids:0 -#: field:sale.order.line,magento_bind_ids:0 -#: view:stock.picking:connector_magento.view_stock_picking_out_magento_form -#: field:stock.picking,magento_bind_ids:0 -msgid "Magento Bindings" -msgstr "Collegamenti di Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_bounce +msgid "Counter of the number of bounced emails for this contact" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_code:0 -msgid "Magento Carrier Code" -msgstr "Codice del trasportatore di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_country_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_country_id +msgid "Country" +msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_child_ids:0 -msgid "Magento Child Categories" -msgstr "Categorie figlie di Magento" +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +msgid "Create invoice on" +msgstr "Crea fattura per" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Magento Configuration" -msgstr "Configurazione di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_account_payment_mode_create_invoice_on +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_invoice_on +msgid "Create invoice on action" +msgstr "Crea la fattura dopo l'azione" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_stock_picking -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_form -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_tree -msgid "Magento Delivery Order" -msgstr "Ordine di consegna di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_created_at +msgid "Created At (on Magento)" +msgstr "Creato il (su Magento)" #. module: connector_magento -#: field:magento.res.partner,group_id:0 -msgid "Magento Group (Category)" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_uid +msgid "Created by" +msgstr "Creato da" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_account_invoice -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_form -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_tree -msgid "Magento Invoice" -msgstr "Fattura di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_date +msgid "Created on" +msgstr "Creato il" #. module: connector_magento -#: field:magento.sale.order,magento_order_id:0 -msgid "Magento Order ID" -msgstr "ID dell'ordine di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date +#, fuzzy +msgid "Creation Date" +msgstr "Creato il" #. module: connector_magento -#: field:magento.sale.order,magento_order_line_ids:0 -msgid "Magento Order Lines" -msgstr "Linee dell'ordine di Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date +msgid "Creation Date, usually the time of the order" +msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_parent_id:0 -msgid "Magento Parent Category" -msgstr "Categoria padre di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit_limit +msgid "Credit Limit" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_res_partner -#: field:magento.address,magento_partner_id:0 -#: view:magento.res.partner:connector_magento.view_magento_res_partner_form -#: view:magento.res.partner:connector_magento.view_magento_res_partner_tree -msgid "Magento Partner" -msgstr "Partner di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_currency_id +msgid "Currency" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_product -#: view:magento.product.product:connector_magento.view_magento_product_form -#: view:magento.product.product:connector_magento.view_magento_product_tree -msgid "Magento Product" -msgstr "Prodotto di Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_qty_available +msgid "" +"Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"stored in the Stock Location of the Warehouse of this Shop, or any of its " +"children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_category -#: view:magento.product.category:connector_magento.view_magento_product_category_form -#: view:magento.product.category:connector_magento.view_magento_product_category_tree -msgid "Magento Product Category" -msgstr "Categoria prodotto di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_custom_api_path +msgid "Custom Api Path" +msgstr "Percorso del API personalizzato" #. module: connector_magento -#: field:magento.product.product,product_type:0 -msgid "Magento Product Type" -msgstr "Tipo di prodotto di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_id +#, fuzzy +msgid "Customer" +msgstr "Cliente ospite" #. module: connector_magento -#: field:magento.backend,product_binding_ids:0 -#: field:magento.website,product_binding_ids:0 -msgid "Magento Products" -msgstr "Prodotti di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_delay +msgid "Customer Lead Time" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order -#: field:magento.account.invoice,magento_order_id:0 -#: field:magento.sale.order.line,magento_order_id:0 -#: field:magento.stock.picking,magento_order_id:0 -msgid "Magento Sale Order" -msgstr "Ordine di vendita di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_customer +#, fuzzy +msgid "Customer Location" +msgstr "Locazione della sezione admin" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order_line -msgid "Magento Sale Order Line" -msgstr "Linea dell'ordine di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer_payment_mode_id +#, fuzzy +msgid "Customer Payment Mode" +msgstr "Metodo di pagamento" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_store -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.store:connector_magento.view_magento_store_tree -msgid "Magento Store" -msgstr "Negozio di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "Customer Payment Terms" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_store -msgid "Magento Stores" -msgstr "Negozi di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_partner_ref +#, fuzzy +msgid "Customer Ref" +msgstr "Cliente ospite" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_storeview -#: field:magento.sale.order,storeview_id:0 -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.storeview:connector_magento.view_magento_storeview_tree -msgid "Magento Storeview" -msgstr "Storeview di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_client_order_ref +msgid "Customer Reference" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview -msgid "Magento Storeviews" -msgstr "Le storeview di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_taxes_id +msgid "Customer Taxes" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_tracking_title:0 -msgid "Magento Tracking Title" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_date +msgid "Date" msgstr "" #. module: connector_magento -#: field:magento.res.partner,taxvat:0 -msgid "Magento VAT" -msgstr "Iva di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date_done +msgid "Date of Transfer" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_website -#: field:magento.address,website_id:0 field:magento.res.partner,website_id:0 -#: field:magento.store,website_id:0 -#: view:magento.website:connector_magento.view_magento_website_form -#: view:magento.website:connector_magento.view_magento_website_tree -msgid "Magento Website" -msgstr "Sito web di Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_last_post +msgid "Date of the last message posted on the record." +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_website -msgid "Magento Websites" -msgstr "Siti web di Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_confirmation_date +msgid "Date on which the sale order is confirmed." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1079 -#, python-format -msgid "Magento sales order is already in state %s" -msgstr "L'ordine di vendita di Magento è già in stato %s" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_billing +msgid "Default Invoice" +msgstr "Fattura di default" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Magentoerpconnect" -msgstr "Magentoerpconnect" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_lang_id +msgid "Default Language" +msgstr "Lingua di default" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Main Configuration" -msgstr "Configurazione principale" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_owner_id +#, fuzzy +msgid "Default Owner" +msgstr "Fattura di default" #. module: connector_magento -#: field:magento.product.product,backorders:0 -msgid "Manage Inventory Backorders" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_category_id +msgid "Default Product Category" +msgstr "Categoria di prodotto di default" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Manage Stock" -msgstr "Gestisci lo stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_shipping +msgid "Default Shipping" +msgstr "" #. module: connector_magento -#: field:magento.product.product,manage_stock:0 -msgid "Manage Stock Level" -msgstr "Gestisci il livello dello stock" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_id +msgid "Default Unit of Measure used for all stock operation." +msgstr "" #. module: connector_magento -#: field:magento.backend,name:0 field:magento.store,name:0 -#: field:magento.storeview,name:0 field:magento.website,name:0 -msgid "Name" -msgstr "Nome" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_po_id +msgid "" +"Default Unit of Measure used for purchase orders. It must be in the same " +"category than the default unit of measure." +msgstr "" #. module: connector_magento -#: field:magento.res.partner,newsletter:0 -msgid "Newsletter" -msgstr "Newsletter" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_trust +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_trust +msgid "Degree of trust you have in this debtor" +msgstr "" #. module: connector_magento -#: field:magento.storeview,no_sales_order_sync:0 -msgid "No Sales Order Synchronization" -msgstr "Nessuna sincronizzazione degli ordini di vendita" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered +msgid "Delivered" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "No Sell" -msgstr "Nessuna vendita" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_delivery_count +msgid "Delivery" +msgstr "" #. module: connector_magento -#: field:magento.product.product,no_stock_sync:0 -msgid "No Stock Synchronization" -msgstr "Nessuna sincronizzazione dello stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_shipping_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery Address" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/related_action.py:55 -#, python-format -msgid "" -"No admin URL configured on the backend or no admin path is defined for this " -"record." -msgstr "Nessun URL di admin è configurato sul backend o nessun path di admin è definito su questo record." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_customer_lead +msgid "Delivery Lead Time" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:83 -#, python-format -msgid "No tracking number to send." -msgstr "Nessun numero di tracciamento da inviare." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_carrier_id +msgid "Delivery Method" +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,notes:0 -msgid "Notes" -msgstr "Note" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_count +#, fuzzy +msgid "Delivery Orders" +msgstr "Ordine di consegna di Magento" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:407 -#: code:addons/connector_magento/unit/export_synchronizer.py:412 -#, python-format -msgid "Nothing to export." -msgstr "Niente da esportare" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_type +msgid "Delivery Type" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "" -"Once imported,\n" -" some types of records,\n" -" like the products or categories,\n" -" need a manual review.\n" -" You will find the list\n" -" of the new records to review\n" -" in the menu 'Connectors > Checkpoint'." -msgstr "Una volta importati,\nalcuni tipi di record,\ncome i prodotti o le categorie\nnecessitano di una revisione manuale.\nTroverai la lista\nnella sezione 'Nuovi record da revisionare'\nnel menu 'Connettori > Punto di controllo'" - -#. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Options" -msgstr "Opzioni" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_shipping_id +msgid "Delivery address for current invoice." +msgstr "" #. module: connector_magento -#: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 -msgid "Paid" -msgstr "Pagato" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery address for current sales order." +msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_parent_id:0 -msgid "Parent Magento Order" -msgstr "Ordine padre di Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_route_ids +msgid "" +"Depending on the modules installed, this will allow you to define the route " +"of the product: whether it will be bought, manufactured, MTO/MTS,..." +msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Partial" -msgstr "Parziale" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_name +msgid "Description" +msgstr "Descrizione" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_picking +#, fuzzy +msgid "Description on Picking" +msgstr "Descrizione" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_dest_id +msgid "Destination Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_discount +msgid "Discount (%)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_display_name +msgid "Display Name" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Do Not Manage Stock" +msgstr "Non gestire il magazzino" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "" +"Does the invoice export/creation should send an email notification on " +"Magento side?" +msgstr "" +"Si vuole che l'esportazione/creazione di fatture invii un email di notifica " +"da Magento?" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_picking_done_mail +msgid "" +"Does the picking export/creation should send an email notification on " +"Magento side?" +msgstr "" +"L'esportazione/creazione di un picking dovrebbe inviare una email di " +"notifica lato Magento?" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_due +msgid "Due Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_emailid +msgid "E-mail address" +msgstr "Indirizzo email" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_partner_share +msgid "" +"Either customer (no user), either shared user. Indicated the current partner " +"is a customer without access or with a limited access created for sharing " +"data." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email +msgid "Email" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_notify_email +msgid "Email Messages and Notifications" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_employee +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_employee +msgid "Employee" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_enabled +msgid "Enabled" +msgstr "Attiva" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_price +#, fuzzy +msgid "Estimated Delivery Price" +msgstr "Ordine di consegna di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_exception_ids +#, fuzzy +msgid "Exceptions" +msgstr "Opzioni" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_expense_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_expense_id +msgid "Expense Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_validity_date +msgid "Expiration Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_export_tracking +msgid "Export tracking numbers" +msgstr "Esporta i numeri di tracciamento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_ids +msgid "Extra categories" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_fax +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_fax +msgid "Fax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_data +msgid "File" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_name +#, fuzzy +msgid "File Name" +msgstr "Nome" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_carrier_id +msgid "Fill this field if you plan to invoice the shipping based on picking." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_firstname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_firstname +msgid "First name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_fiscal_position_id +msgid "Fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_follower_ids +msgid "Followers" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_removal_strategy_id +msgid "Force Removal Strategy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_virtual_available +#, fuzzy +msgid "Forecast Quantity" +msgstr "Calcola la quantità" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_email_formatted +msgid "Format email address \"Name \"" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email_formatted +msgid "Formatted Email" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Get" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_packaging_ids +msgid "" +"Gives the different ways to package the same product. This has no impact on " +"the picking order and is mainly used if you use the EDI module." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sequence +msgid "Gives the sequence order when displaying a product list" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_guest_customer +msgid "Guest Customer" +msgstr "Cliente ospite" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_hs_code +#, fuzzy +msgid "HS Code" +msgstr "Codice" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "HTTP Authentication" +msgstr "Autenticazione HTTP" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_has_checkpoint +msgid "Has Checkpoint" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Has Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_has_scrap_move +msgid "Has Scrap Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_need_cancel +msgid "Has been canceled on the backend, need to be canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_has_outstanding +msgid "Has outstanding" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Has quants already reserved" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "Has unreconciled entries" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Here is the file with information read drom the backend:" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id_5804 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_id +msgid "ID" +msgstr "ID" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_external_id +msgid "ID on Magento" +msgstr "ID su Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_im_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_im_status +msgid "IM Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_category_id +msgid "" +"If a default category is selected, products imported without a category will " +"be linked to it." +msgstr "" +"Se si sceglie una categoria di default, i prodotti importati senza categoria " +"verranno assegnati alla categoria scelta" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_lang_id +msgid "" +"If a default language is selected, the records will be imported in the " +"translation of this language.\n" +"Note that a similar configuration exists for each storeview." +msgstr "" +"Se una lingua di default viene selezionata, i record verranno importati " +"nella traduzione di quella lingua.\n" +"Nota una configurazione simile esiste per ogni storeview." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "" +"If checked, this shows the packs to be moved as a whole in the Operations " +"tab all the time, even if there was no entire pack reserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_opt_out +msgid "" +"If opt-out is checked, this contact has refused to receive emails for mass " +"mailing and marketing campaign. Filter 'Available for Mass Mailing' allows " +"users to filter the partners when performing mass mailing." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'. The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_team_id +msgid "" +"If set, sale team used notably for sales and assignations related to this " +"partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "" +"If specified, this fiscal position will be used to fill the field fiscal " +"position on the sale order created by the connector.The value can also be " +"specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_warehouse_id +msgid "" +"If specified, this warehouse will be used to load fill the field warehouse " +"(and company) on the sale order created by the connector.The value can also " +"be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_lang +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_lang +msgid "" +"If the selected language is loaded in the system, all documents related to " +"this contact will be printed in this language. If not, it will be English." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_website_is_multi_company +msgid "" +"If this flag is set, it is possible to choose warehouse at each level. When " +"import partner, ignore company_id if this flag is set." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_backorder_id +msgid "" +"If this shipment was split, then this field links to the shipment which " +"contains the already processed part." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_active +msgid "" +"If unchecked, it will allow you to hide the product without removing it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_payment_term_id +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. If you keep the payment term and the due " +"date empty, it means direct payment. The payment term may compute several " +"due dates, for example 50% now, 50% in one month." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_due +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. The payment term may compute several due " +"dates, for example 50% now and 50% in one month, but if you want to force a " +"due date, make sure that the payment term is not set on the invoice. If you " +"keep the payment term and the due date empty, it means direct payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_ignore_exception +#, fuzzy +msgid "Ignore Exceptions" +msgstr "Opzioni di inventario" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image +msgid "Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image +msgid "" +"Image of the product variant (Big-sized image of product template if false). " +"It is automatically resized as a 1024x1024px image, with aspect ratio " +"preserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_medium +msgid "" +"Image of the product variant (Medium-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_small +msgid "" +"Image of the product variant (Small-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders" +msgstr "Importa gli ordini di vendita" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders since" +msgstr "Importa gli ordini di vendita dal" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import all customer groups" +msgstr "Importato tutti i gruppi di clienti" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_categories_from_date +msgid "Import categories from date" +msgstr "Importa le categorie dalla data" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import in background" +msgstr "Importa in background" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import partners from all websites" +msgstr "Importa i partner da tutti i websites" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_import_partners_from_date +msgid "Import partners from date" +msgstr "Importa i partner dalla data" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import partners since" +msgstr "Importa i partner dal" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products categories since" +msgstr "Importa le categorie prodotto dal" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_products_from_date +msgid "Import products from date" +msgstr "Importa i prodotti dalla data" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products since" +msgstr "Importa i prodotti dal" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_import_orders_from_date +msgid "Import sale orders from date" +msgstr "Importa gli ordini di vendita dalla data" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import sales orders from all store views" +msgstr "Importa ordini di vendita da tutte le viste negozio." + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Imports" +msgstr "Importa" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_income_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_income_id +msgid "Income Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_incoming_qty +msgid "Incoming" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_incoterms_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_incoterm +msgid "Incoterms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_incoterms_id +msgid "" +"Incoterms are series of sales terms. They are used to divide transaction " +"costs and responsibilities between buyer and seller and reflect state-of-the-" +"art transportation practices." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Informations" +msgstr "Informazioni" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_default_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref +msgid "Internal Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_barcode +msgid "International Article Number used for product identification." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_incoterm +msgid "" +"International Commercial Terms are a series of predefined commercial terms " +"used in international transactions." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_inventory +#, fuzzy +msgid "Inventory Location" +msgstr "Opzioni di inventario" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +msgid "Inventory Options" +msgstr "Opzioni di inventario" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_valuation +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_valuation +#, fuzzy +msgid "Inventory Valuation" +msgstr "Opzioni di inventario" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_invoice +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn +msgid "Invoice" +msgstr "Fattura" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_invoice_id +#, fuzzy +msgid "Invoice Address" +msgstr "Fattura creata" + +#. module: connector_magento +#: code:addons/connector_magento/models/account_invoice/exporter.py:26 +#, python-format +msgid "Invoice Created" +msgstr "Fattura creata" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_invoice +#, fuzzy +msgid "Invoice Date" +msgstr "Fattura creata" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_invoice_line_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_lines +#, fuzzy +msgid "Invoice Lines" +msgstr "Fattura" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_shipping_on_delivery +msgid "Invoice Shipping on Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_status +#, fuzzy +msgid "Invoice Status" +msgstr "Fattura creata" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_refund_invoice_id +msgid "Invoice for which this invoice is the refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_invoiced +#, fuzzy +msgid "Invoiced" +msgstr "Fattura" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_ids +#, fuzzy +msgid "Invoices" +msgstr "Fattura" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_invoice_policy +msgid "Invoicing Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_is_multi_company +msgid "Is Backend Multi-Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_is_company +#, fuzzy +msgid "Is a Company" +msgstr "Azienda" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer +#, fuzzy +msgid "Is a Customer" +msgstr "Cliente ospite" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_is_delivery +msgid "Is a Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier +msgid "Is a Vendor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reconciled +msgid "" +"It indicates that the invoice has been paid and the journal entry of the " +"invoice has been reconciled with one or several journal entries of payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_sent +msgid "It indicates that the invoice has been sent." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_move_type +msgid "It specifies goods to be deliver partially or all at once" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_function +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_function +msgid "Job Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_journal_id +msgid "Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_id +msgid "Journal Entry" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_name +msgid "Journal Entry Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_journal_item_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_journal_item_count +msgid "Journal Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_invoice +msgid "Keep empty to use the current date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date +msgid "Keep empty to use the invoice date." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_lang_id +msgid "Language" +msgstr "Lingua" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_last_post +msgid "Last Message Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_address___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_store___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_website___last_update +#, fuzzy +msgid "Last Modified on" +msgstr "Ultimo aggiornamento il" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento da" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_magento_qty +msgid "Last computed quantity to send on Magento." +msgstr "L'ultima quantità calcolata da inviare a Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lastname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lastname +msgid "Last name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "" +"Last time the invoices & payments matching was performed for this partner. " +"It is set either if there's not at least an unreconciled debit and an " +"unreconciled credit or if you click the \"Done\" button." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "Latest Invoices & Payments Matching Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_launch_pack_operations +msgid "Launch Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_sequence +msgid "Layout Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_left +msgid "Left Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_left +msgid "Left parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_id +msgid "Link to the automatically generated Journal Items." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_location +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_location_id +msgid "Location" +msgstr "Locazione" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_packaging_ids +msgid "Logistical Units" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.menu,name:connector_magento.menu_magento_root +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +#: model:ir.ui.view,arch_db:connector_magento.view_magento_delivery_carrier_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_category_form +msgid "Magento" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_address +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_tree +msgid "Magento Address" +msgstr "Indirizzo di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_address_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Magento Address Bindings" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_backend +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_backend_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_tree +msgid "Magento Backend" +msgstr "Il backend Magento" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_backend +msgid "Magento Backends" +msgstr "I backend Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_carrier_code +#, fuzzy +msgid "Magento Base Carrier Code" +msgstr "Codice del trasportatore di Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding +msgid "Magento Binding (abstract)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_stock_picking_magento_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.product_normal_form_view +#: model:ir.ui.view,arch_db:connector_magento.view_invoice_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_sale_order_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_stock_picking_out_magento_form +msgid "Magento Bindings" +msgstr "Collegamenti di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_code +msgid "Magento Carrier Code" +msgstr "Codice del trasportatore di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_child_ids +msgid "Magento Child Categories" +msgstr "Categorie figlie di Magento" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Magento Configuration" +msgstr "Configurazione di Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_stock_picking +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_tree +msgid "Magento Delivery Order" +msgstr "Ordine di consegna di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_group_id +msgid "Magento Group (Category)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_id +#, fuzzy +msgid "Magento Id" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_account_invoice +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_tree +msgid "Magento Invoice" +msgstr "Fattura di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_id +msgid "Magento Order ID" +msgstr "ID dell'ordine di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_line_ids +msgid "Magento Order Lines" +msgstr "Linee dell'ordine di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_parent_id +msgid "Magento Parent Category" +msgstr "Categoria padre di Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_partner_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_tree +msgid "Magento Partner" +msgstr "Partner di Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_product +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_tree +msgid "Magento Product" +msgstr "Prodotto di Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_category +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_tree +msgid "Magento Product Category" +msgstr "Categoria prodotto di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_type +msgid "Magento Product Type" +msgstr "Tipo di prodotto di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_binding_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_product_binding_ids +msgid "Magento Products" +msgstr "Prodotti di Magento" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_rewards +#: model:product.template,name:connector_magento.product_product_rewards_product_template +#, fuzzy +msgid "Magento Rewards" +msgstr "I backend Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_order_id +msgid "Magento Sale Order" +msgstr "Ordine di vendita di Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order_line +msgid "Magento Sale Order Line" +msgstr "Linea dell'ordine di Magento" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_tree +#, fuzzy +msgid "Magento Sales Orders" +msgstr "Ordine di vendita di Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_tree +msgid "Magento Store" +msgstr "Negozio di Magento" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_store_credit +#: model:product.template,name:connector_magento.product_product_store_credit_product_template +#, fuzzy +msgid "Magento Store Credit" +msgstr "Negozio di Magento" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_store +msgid "Magento Stores" +msgstr "Negozi di Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_storeview +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_storeview_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_tree +msgid "Magento Storeview" +msgstr "Storeview di Magento" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview +msgid "Magento Storeviews" +msgstr "Le storeview di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_tracking_title +msgid "Magento Tracking Title" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_taxvat +msgid "Magento VAT" +msgstr "Iva di Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_website_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_tree +msgid "Magento Website" +msgstr "Sito web di Magento" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_website +msgid "Magento Websites" +msgstr "Siti web di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_backend_id +#, fuzzy +msgid "Magento backend id" +msgstr "Il backend Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_binding_model +#, fuzzy +msgid "Magento binding model" +msgstr "Collegamenti di Magento" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:58 +#, python-format +msgid "Magento sales order is already in state %s" +msgstr "L'ordine di vendita di Magento è già in stato %s" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Main Configuration" +msgstr "Configurazione principale" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_main_exception_id +msgid "Main Exception" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backorders +msgid "Manage Inventory Backorders" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Manage Stock" +msgstr "Gestisci lo stock" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_manage_stock +msgid "Manage Stock Level" +msgstr "Gestisci il livello dello stock" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_track_service +msgid "" +"Manually set quantities on order: Invoice based on the manually entered " +"quantity, without creating an analytic account.\n" +"Timesheets on contract: Invoice based on the tracked hours on the related " +"timesheet.\n" +"Create a task and track hours: Create a task on the sale order validation " +"and track the work hours." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_validity_date +msgid "" +"Manually set the expiration date of your quotation (offer), or it will set " +"the date automatically based on the template if online quotation is " +"installed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_max_date +msgid "Max. Expected Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_medium +msgid "Medium-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_medium +msgid "" +"Medium-sized image of this contact. It is automatically resized as a " +"128x128px image, with aspect ratio preserved. Use this field in form views " +"or some kanban views." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn_msg +#, fuzzy +msgid "Message for Invoice" +msgstr "Fattura di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn_msg +#, fuzzy +msgid "Message for Sales Order" +msgstr "Ordine di vendita di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn_msg +#, fuzzy +msgid "Message for Sales Order Line" +msgstr "Linea dell'ordine di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn_msg +msgid "Message for Stock Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_ids +msgid "Messages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_orderpoint_ids +msgid "Minimum Stock Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_mobile +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_mobile +msgid "Mobile" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_name +msgid "Name" +msgstr "Nome" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_need_cancel +msgid "Need to be canceled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_newsletter +msgid "Newsletter" +msgstr "Newsletter" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "No Sales Order Synchronization" +msgstr "Nessuna sincronizzazione degli ordini di vendita" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "No Sell" +msgstr "Nessuna vendita" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_no_stock_sync +msgid "No Stock Synchronization" +msgstr "Nessuna sincronizzazione dello stock" + +#. module: connector_magento +#: code:addons/connector_magento/models/queue_job/common.py:27 +#, python-format +msgid "" +"No admin URL configured on the backend or no admin path is defined for this " +"record." +msgstr "" +"Nessun URL di admin è configurato sul backend o nessun path di admin è " +"definito su questo record." + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:63 +#, python-format +msgid "No tracking number to send." +msgstr "Nessun numero di tracciamento da inviare." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_product_ids +msgid "Non pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_notes +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_note +msgid "Notes" +msgstr "Note" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:363 +#: code:addons/connector_magento/components/exporter.py:368 +#, python-format +msgid "Nothing to export." +msgstr "Niente da esportare" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_number +msgid "Number" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_number_of_packages +msgid "Number of Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_line_customer_lead +msgid "" +"Number of days between the order confirmation and the shipping of the " +"products to the customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#, fuzzy +msgid "" +"Once imported,\n" +" some types of records,\n" +" like the products or categories,\n" +" need a manual review.\n" +" You will find the list\n" +" of the new records to review\n" +" in the menu 'Connectors > Checkpoint'." +msgstr "" +"Una volta importati,\n" +"alcuni tipi di record,\n" +"come i prodotti o le categorie\n" +"necessitano di una revisione manuale.\n" +"Troverai la lista\n" +"nella sezione 'Nuovi record da revisionare'\n" +"nel menu 'Connettori > Punto di controllo'" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_opt_out +msgid "Opt-Out" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Options" +msgstr "Opzioni" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_date_order +msgid "Order Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_order_line +#, fuzzy +msgid "Order Lines" +msgstr "Linea dell'ordine di vendita" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_name +msgid "Order Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_state +msgid "Order Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_invoice_policy +msgid "" +"Ordered Quantity: Invoice based on the quantity the customer ordered.\n" +"Delivered Quantity: Invoiced based on the quantity the vendor delivered " +"(time or deliveries)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_outgoing_qty +msgid "Outgoing" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_outstanding_credits_debits_widget +msgid "Outstanding credits debits widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_owner_id +msgid "Owner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_pack_ids +msgid "Pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_package_ids +msgid "Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_packaging +msgid "Packaging" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 +#: selection:magento.store,create_invoice_on:0 +msgid "Paid" +msgstr "Pagato" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reconciled +msgid "Paid/Reconciled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_id +#, fuzzy +msgid "Parent Category" +msgstr "Categoria del partner" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_parent_id +msgid "Parent Magento Order" +msgstr "Ordine padre di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_id +#, fuzzy +msgid "Parent Order" +msgstr "Ordine padre di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_name +msgid "Parent name" +msgstr "" + +#. module: connector_magento +#: selection:magento.stock.picking,picking_method:0 +msgid "Partial" +msgstr "Parziale" #. module: connector_magento #: model:ir.model,name:connector_magento.model_res_partner -#: field:magento.address,openerp_id:0 field:magento.res.partner,openerp_id:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_partner_id msgid "Partner" msgstr "Partner" #. module: connector_magento -#: field:magento.res.partner.category,openerp_id:0 -msgid "Partner Category" -msgstr "Categoria del partner" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_odoo_id +msgid "Partner Category" +msgstr "Categoria del partner" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner_category +msgid "Partner Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_partner_ids +#, fuzzy +msgid "Partners" +msgstr "Partner" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_password +msgid "Password" +msgstr "Password" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit_limit +msgid "Payable Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_mode_id +#, fuzzy +msgid "Payment Mode" +msgstr "Metodo di pagamento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_payment_mode +#, fuzzy +msgid "Payment Modes" +msgstr "Metodo di pagamento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_move_line_ids +#, fuzzy +msgid "Payment Move Lines" +msgstr "Linee dell'ordine di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference_type +msgid "Payment Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_term_id +#, fuzzy +msgid "Payment Terms" +msgstr "Metodo di pagamento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_ids +#, fuzzy +msgid "Payment Tokens" +msgstr "Metodo di pagamento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_ids +#, fuzzy +msgid "Payments" +msgstr "Metodo di pagamento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payments_widget +#, fuzzy +msgid "Payments widget" +msgstr "Metodo di pagamento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_phone +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_phone +msgid "Phone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_method +msgid "Picking Method" +msgstr "Metodo di picking" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_id +#, fuzzy +msgid "Picking Type" +msgstr "Metodo di picking" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_ids +msgid "Picking associated to this sale" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_notify_email +msgid "" +"Policy to receive emails for new messages pushed to your personal Inbox:\n" +"- Never: no emails are sent\n" +"- All Messages: for every notification you receive in your Inbox" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price +msgid "Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce +msgid "Price Reduce" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxexcl +msgid "Price Reduce Tax excl" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxinc +msgid "Price Reduce Tax inc" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_item_ids +msgid "Pricelist Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_item_ids +msgid "Pricelist item ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_catalog_price_tax_included +msgid "Prices include tax" +msgstr "I prezzi includono le tasse" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_id +#, fuzzy +msgid "Pricing/Primary Category" +msgstr "Categoria del partner" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_printed +msgid "Printed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_priority +msgid "Priority" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_priority +msgid "" +"Priority for this picking. Setting manually a value here would set it as " +"priority for all the moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_procurement_group_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_group_id +msgid "Procurement Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_procurement +#, fuzzy +msgid "Procurement Location" +msgstr "Locazione della sezione admin" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_procurement_ids +msgid "Procurements" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_product +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_product_id +msgid "Product" +msgstr "Prodotto" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_line_ids +msgid "Product Attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_category +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_odoo_id +msgid "Product Category" +msgstr "Categoria prodotto" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_tmpl_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_tmpl_id +#, fuzzy +msgid "Product Template" +msgstr "Categoria prodotto" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_type +#, fuzzy +msgid "Product Type" +msgstr "Tipo di prodotto di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_production +#, fuzzy +msgid "Production Location" +msgstr "Locazione della sezione admin" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_ids +#, fuzzy +msgid "Products" +msgstr "Prodotto" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_delivery_type +msgid "Provider" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_purchase +#, fuzzy +msgid "Purchase Description" +msgstr "Descrizione" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_po_id +msgid "Purchase Unit of Measure" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_qty +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom_qty +#, fuzzy +msgid "Quantity" +msgstr "Calcola la quantità" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_qty_available +msgid "Quantity On Hand" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_incoming_qty +msgid "" +"Quantity of products that are planned to arrive.\n" +"In a context with a single Stock Location, this includes goods arriving to " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location with " +"'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_outgoing_qty +msgid "" +"Quantity of products that are planned to leave.\n" +"In a context with a single Stock Location, this includes goods leaving this " +"Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving the Stock " +"Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods leaving any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_queue_job +msgid "Queue Job" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_expense_policy +msgid "Re-Invoice Expenses" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Read Binding information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.magento_binding_backend_read_act_window +msgid "Read information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reception_count +msgid "Receipt" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "Recompute pack operation?" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/deleter.py:21 +#, python-format +msgid "Record %s deleted on Magento" +msgstr "Record %s eliminato su Magento" + +#. module: connector_magento +#: code:addons/connector_magento/components/importer.py:189 +#, python-format +msgid "Record does no longer exist in Magento" +msgstr "Il record non esiste più su Magento" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:370 +#, python-format +msgid "Record exported with ID %s on Magento." +msgstr "Il record è stato esportato con ID %s su Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_name +msgid "Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_origin +msgid "Reference of the document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_origin +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_origin +msgid "Reference of the document that produced this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_name +#, fuzzy +msgid "Reference/Description" +msgstr "Descrizione" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_id +#, fuzzy +msgid "Related Company" +msgstr "Creato il" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_ids +msgid "Related Packing Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_related_backorder_ids +msgid "Related backorders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Remaining amount due in the currency of the company." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_signed +msgid "Remaining amount due in the currency of the invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual +msgid "Remaining amount due." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/common.py:137 +#, python-format +msgid "Reopen sales order %s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_nbr_reordering_rules +msgid "Reordering Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_max_qty +msgid "Reordering max qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_min_qty +msgid "Reordering min qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_right +msgid "Right Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_right +msgid "Right parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_route_id +msgid "Route" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_route_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_ids +msgid "Routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_rule_group +msgid "Rule group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_sale +#, fuzzy +msgid "Sale Description" +msgstr "Descrizione" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_sale_id +msgid "Sale Order" +msgstr "Ordine di vendita" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_odoo_id +msgid "Sale Order Line" +msgstr "Linea dell'ordine di vendita" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_sale_prefix +msgid "Sale Prefix" +msgstr "Prefisso di vendita" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_list_price +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_lst_price +#, fuzzy +msgid "Sale Price" +msgstr "Prefisso di vendita" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_product_pricelist +#, fuzzy +msgid "Sale Pricelist" +msgstr "Prefisso di vendita" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_workflow_process_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_workflow_process_id +msgid "Sale Workflow Process" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:54 +#, python-format +msgid "Sale is not linked with a Magento sales order" +msgstr "L'ordine non è collegato ad un ordine di vendita di Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn +msgid "Sales Order" +msgstr "Ordini di vendita" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order_line +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn +msgid "Sales Order Line" +msgstr "Linee degli ordini di vendita" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_team_id +msgid "Sales Team" +msgstr "Team vendite" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_salesman_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_user_id +#, fuzzy +msgid "Salesperson" +msgstr "Ordini di vendita" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_min_date +msgid "Scheduled Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_min_date +msgid "" +"Scheduled time for the first part of the shipment to be processed. Setting " +"manually a value here would set it as expected date for all the stock moves." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_max_date +msgid "Scheduled time for the last part of the shipment to be processed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_id +#, fuzzy +msgid "Section" +msgstr "Descrizione" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_categ_id +msgid "Select category for the current product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Select the default payment mode for this customer." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Select the default payment mode for this supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_line_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_sale_warn +msgid "" +"Selecting the \"Warning\" option will notify user with the message, " +"Selecting \"Blocking Message\" will throw an exception with the message and " +"block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_self +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_self +msgid "Self" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0 and Use Customer Notification" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "Send email notification on invoice validated/paid" +msgstr "Invia una mail di notifica quando la fattura viene validata/pagata" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_picking_done_mail +msgid "Send email notification on picking done" +msgstr "Invia email di notifica al completamento del picking" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_sent +msgid "Sent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sequence +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_sequence +msgid "Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_removal_strategy_id +msgid "" +"Set a specific removal strategy that will be used regardless of the source " +"location for this product category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_partner_share +#, fuzzy +msgid "Share Partner" +msgstr "Partner di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_price +#, fuzzy +msgid "Shipping Cost" +msgstr "Spedizione creata" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:25 +#, python-format +msgid "Shipping Created" +msgstr "Spedizione creata" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_policy +msgid "Shipping Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_account_payment_mode_create_invoice_on +#, fuzzy +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"If nothing is set, the option falls back to the same option on the Magento " +"store related to the sales order." +msgstr "" +"La fattura dovrebbe essere creata in Magento quando viene validata o pagata " +"su OpenERP?\n" +"Questo ha effetto se il metodo di pagamento legato all'ordine di vendita non " +"fornisce già un'opzione per questo (Vedi i metodi di pagamento)" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_create_invoice_on +#, fuzzy +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"This only takes effect if the sales order's related payment method is not " +"giving an option for this by itself. (See Payment Methods)" +msgstr "" +"La fattura dovrebbe essere creata in Magento quando viene validata o pagata " +"su OpenERP?\n" +"Questo ha effetto se il metodo di pagamento legato all'ordine di vendita non " +"fornisce già un'opzione per questo (Vedi i metodi di pagamento)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_type +msgid "Signup Token Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_valid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_valid +msgid "Signup Token is Valid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_url +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_url +msgid "Signup URL" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_expiration +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_expiration +msgid "Signup expiration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_token +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_token +msgid "Signup token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_small +msgid "Small-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_small +msgid "" +"Small-sized image of this contact. It is automatically resized as a 64x64px " +"image, with aspect ratio preserved. Use this field anywhere a small image is " +"required." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_sort_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_sort_order +msgid "Sort Order" +msgstr "Ordinamento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_origin +msgid "Source Document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_id +msgid "Source Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_account_analytic_id +msgid "Specific analytic account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "Specific fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_warehouse_id +msgid "Specific warehouse" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_ok +msgid "Specify if the product can be selected in a sales order line." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +" Average Price: The cost price is recomputed at each incoming " +"shipment and used for the product valuation.\n" +" Real Price: The cost price displayed is the price of the " +"last outgoing product (will be use in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +"Average Price: The cost price is recomputed at each incoming shipment and " +"used for the product valuation.\n" +"Real Price: The cost price displayed is the price of the last outgoing " +"product (will be used in case of inventory loss for example)." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner_category -msgid "Partner Tags" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_hs_code +msgid "Standardized code for international shipping and goods declaration" msgstr "" #. module: connector_magento -#: field:magento.backend,password:0 -msgid "Password" -msgstr "Password" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_state_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_state_id +msgid "State" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:51 +#, python-format +msgid "State %s is not exported." +msgstr "Lo stato %s non è esportato." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_state +msgid "Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_stock_field_id +msgid "Stock Field" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_input +msgid "Stock Input Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_journal +msgid "Stock Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_lines +msgid "Stock Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_output +msgid "Stock Output Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_odoo_id +msgid "Stock Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "Stock Valuation Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_move_ids +msgid "Stock move ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_quant_ids +msgid "Stock quant ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_store_id +msgid "Store" +msgstr "Negozio" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_store_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Stores" +msgstr "Negozi" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_store_id +#, fuzzy +msgid "Storeview" +msgstr "Storeviews" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_storeview_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +msgid "Storeviews" +msgstr "Storeviews" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_payment_method -msgid "Payment Method" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street +msgid "Street" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street2 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street2 +msgid "Street2" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_subtotal +msgid "Subtotal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier_payment_mode_id +#, fuzzy +msgid "Supplier Payment Mode" msgstr "Metodo di pagamento" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_stock_picking -msgid "Picking List" -msgstr "Lista di picking" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Synchronize Metadata" +msgstr "Sincronizza i metadati" #. module: connector_magento -#: field:magento.stock.picking,picking_method:0 -msgid "Picking Method" -msgstr "Metodo di picking" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_vat +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_vat +msgid "TIN" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_name +#, fuzzy +msgid "Tag Name" +msgstr "Nome" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id +msgid "Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_tax +msgid "Tax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_tax_class_id +msgid "Tax Class ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_vat +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_vat +msgid "" +"Tax Identification Number. Fill it if the company is subjected to taxes. " +"Used by the some of the legal statements." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_tax_line_ids +msgid "Tax Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_rate +msgid "Tax Rate" +msgstr "Aliquota fiscale" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax groups are used with some external system like Prestashop" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_id +msgid "Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_name +msgid "" +"Technical field holding the number given to the invoice, automatically set " +"when the invoice is validated then stored to set the same number again if " +"the invoice is cancelled, set to draft and re-validated." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_pricelist_id +msgid "" +"Technical field. Used for searching on pricelists, not stored in database." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_move_ids +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_quant_ids +#, fuzzy +msgid "Technical: used to compute quantities." +msgstr "Magazzino usato per la valorizzazione delle scorte." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_note +msgid "Terms and conditions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_category_active +msgid "The active field allows you to hide the category without removing it." +msgstr "" + +#. module: connector_magento +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount +#, fuzzy +msgid "" +"The amount computed in Odoo doesn't match with the amount in Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" +"Il totale calcolato su OpenERP non corrisponde alla quantità su Magento.\n" +"Causa:\n" +"Le tasse sono probabilmente differenti tra OpenERP e Magento. Una posizione " +"fiscale potrebbe aver cambiato il prezzo finale.\n" +"Soluzione:\n" +"Controlla la configurazione delle tue tasse e delle tue posizioni fiscali e " +"correggile se necessario." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_related_project_id +msgid "The analytic account related to a sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_delay +msgid "" +"The average delay in days between the confirmation of the customer order and " +"the delivery of the finished products. It's the time you promise to your " +"customers." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:60 +#, python-format +msgid "The carrier %s does not export tracking numbers." +msgstr "Il trasportatore %s non esporta i numeri di tracciamento." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_commercial_partner_id +msgid "" +"The commercial entity that will be used on Journal Entries for this invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_company_id +msgid "The company is automatically set from your user preferences." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/product/importer.py:296 +#, fuzzy, python-format +msgid "" +"The configurable product is not imported in Odoo, because only the simple " +"products are used in the sales orders." +msgstr "" +"Il prodotto configurabile non è importato in OpenERP, perchè solo i prodotti " +"semplici vengono usati negli ordini di vendita" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_custom_api_path +msgid "" +"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a " +"custom API path, in that case, the location has to be completed with the " +"custom API path " +msgstr "" +"Il path predefinito del API è '/index.php/api/xmlrpc''. Seleziona questo " +"box se utilizzi un path personalizzato per l'API. In quel caso la posizione " +"deve essere completata con il path custom dell'API." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_position_id +msgid "" +"The fiscal position will determine taxes and accounts used for the partner." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_user_id +msgid "" +"The internal user that is in charge of communicating with this contact if " +"any." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_name +msgid "The name that will be used on account move lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_product_count +msgid "" +"The number of products under this category (Does not consider the children " +"categories)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_account_id +msgid "The partner account used for this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "" +"The partner has at least one unreconciled debit and credit since last time " +"the invoices & payments matching was performed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reference +msgid "The partner reference of this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_tz +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_tz +msgid "" +"The partner's timezone, used to output proper date and time values inside " +"printed reports. It is important to set a value for this field. You should " +"use the same timezone that is otherwise used to pick and render date and " +"time values: your computer's timezone." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_lst_price +msgid "" +"The sale price is managed from the product template. Click on the 'Variant " +"Prices' button to set the extra attribute prices." +msgstr "" + +#. module: connector_magento +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount_tax +#, fuzzy +msgid "" +"The tax amount computed in Odoo doesn't match with the tax amount in " +"Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" +"Il totale delle tasse calcolato su OpenERP non corrisponde al totale delle " +"tasse su Magento.\n" +"Causa:\n" +"Le tasse sono probabilmente differenti tra OpenERP e Magento. Una posizione " +"fiscale potrebbe aver cambiato il prezzo finale.\n" +"Soluzione:\n" +"Controlla la configurazione delle tue tasse e delle tue posizioni fiscali e " +"correggile se necessario." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_volume +msgid "The volume in m3." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_weight +msgid "The weight of the contents in Kg, not including any packaging, etc." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:41 +#, python-format +msgid "The wizard must be launched from a magento backend model" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:45 +#, python-format +msgid "The wizard must be launched on a single magento backend instance" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_expense_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"expenses for the current product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_income_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"sales for the current product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_expense_categ_id +msgid "This account will be used for invoices to value expenses." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_income_categ_id +msgid "This account will be used for invoices to value sales." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_delivery_carrier_id +msgid "This delivery method will be used when invoicing from picking." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image +msgid "" +"This field holds the image used as avatar for this contact, limited to " +"1024x1024px" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_variant +msgid "" +"This field holds the image used as image for the product variant, limited to " +"1024x1024px." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_price_extra +msgid "This is the sum of the extra price of all attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#, fuzzy +msgid "" +"This option should respect the same\n" +" configuration as Magento. Pay\n" +" attention to the taxes on the products,\n" +" which should surely include prices when\n" +" this option is activated." +msgstr "" +"Questa opzione dovrebbe essere\n" +"la stessa impostata in Magento. \n" +"Fai attenzione che le tasse sul prodotto\n" +"devono essere incluse nei prezzi quando\n" +"questa opzione è attivata." #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_pricing:0 -msgid "Prices are managed in OpenERP with pricelists" -msgstr "I prezzi sono gestiti in OpenERP con i listini prezzi" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "" +"This payment term will be used instead of the default one for purchase " +"orders and vendor bills" +msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_pricing:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_payment_term_id msgid "" -"Prices are set in OpenERP and exported to Magento.\n" -"\n" -"This installs the module connector_magento_pricing." -msgstr "I prezzi vengono impostati su OpenERP ed esportati su Magento.\n\nQuesto installa il modulo connector_magento_pricing." +"This payment term will be used instead of the default one for sale orders " +"and customer invoices" +msgstr "" #. module: connector_magento -#: field:magento.storeview,catalog_price_tax_included:0 -msgid "Prices include tax" -msgstr "I prezzi includono le tasse" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "" +"This pricelist will be used, instead of the default one, for sales to the " +"current partner" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_product -#: field:magento.product.product,openerp_id:0 -msgid "Product" -msgstr "Prodotto" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_customer +msgid "" +"This stock location will be used, instead of the default one, as the " +"destination location for goods you send to this partner" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_category -#: field:magento.product.category,openerp_id:0 -msgid "Product Category" -msgstr "Categoria prodotto" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for goods you receive from the current partner" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/delete_synchronizer.py:38 -#, python-format -msgid "Record %s deleted on Magento" -msgstr "Record %s eliminato su Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_production +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by manufacturing orders." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:199 -#, python-format -msgid "Record does no longer exist in Magento" -msgstr "Il record non esiste più su Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_procurement +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by procurements." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:414 -#, python-format -msgid "Record exported with ID %s on Magento." -msgstr "Il record è stato esportato con ID %s su Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_inventory +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated when you do an inventory." +msgstr "" #. module: connector_magento -#: field:magento.sale.order,openerp_id:0 -msgid "Sale Order" -msgstr "Ordine di vendita" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz +msgid "Timezone" +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,openerp_id:0 -msgid "Sale Order Line" -msgstr "Linea dell'ordine di vendita" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz_offset +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz_offset +msgid "Timezone offset" +msgstr "" #. module: connector_magento -#: field:magento.backend,sale_prefix:0 -msgid "Sale Prefix" -msgstr "Prefisso di vendita" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_title +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_title +msgid "Title" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1075 -#, python-format -msgid "Sale is not linked with a Magento sales order" -msgstr "L'ordine non è collegato ad un ordine di vendita di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_to_invoice +#, fuzzy +msgid "To Invoice" +msgstr "Fattura" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order -msgid "Sales Order" -msgstr "Ordini di vendita" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_total +msgid "Total" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order_line -msgid "Sales Order Line" -msgstr "Linee degli ordini di vendita" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount +msgid "Total Amount differs from Magento" +msgstr "Il totale è diverso da quello di Magento" #. module: connector_magento -#: field:magento.storeview,section_id:0 -msgid "Sales Team" -msgstr "Team vendite" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_total_invoiced +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_total_invoiced +#, fuzzy +msgid "Total Invoiced" +msgstr "Fattura di default" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit +msgid "Total Payable" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0 and Use Customer Notification" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit +msgid "Total Receivable" msgstr "" #. module: connector_magento -#: field:magento.store,send_invoice_paid_mail:0 -msgid "Send email notification on invoice validated/paid" -msgstr "Invia una mail di notifica quando la fattura viene validata/pagata" - -#. module: connector_magento -#: field:magento.store,send_picking_done_mail:0 -msgid "Send email notification on picking done" -msgstr "Invia email di notifica al completamento del picking" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount_tax +msgid "Total Tax Amount differs from Magento" +msgstr "Il totale delle tasse è diverso da quello di Magento" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:126 -#: code:addons/connector_magento/tests/test_export_picking.py:89 -#: code:addons/connector_magento/tests/test_export_picking.py:135 -#: code:addons/connector_magento/tests/test_export_picking.py:169 -#, python-format -msgid "Shipping Created" -msgstr "Spedizione creata" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount +msgid "Total amount" +msgstr "Totale" #. module: connector_magento -#: help:payment.method,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"If nothing is set, the option falls back to the same option on the Magento store related to the sales order." +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total amount in the currency of the company, negative for credit notes." msgstr "" #. module: connector_magento -#: help:magento.store,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"This only takes effect if the sales order's related payment method is not giving an option for this by itself. (See Payment Methods)" -msgstr "La fattura dovrebbe essere creata in Magento quando viene validata o pagata su OpenERP?\nQuesto ha effetto se il metodo di pagamento legato all'ordine di vendita non fornisce già un'opzione per questo (Vedi i metodi di pagamento)" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total amount in the currency of the invoice, negative for credit notes." +msgstr "" #. module: connector_magento -#: field:magento.storeview,sort_order:0 field:magento.website,sort_order:0 -msgid "Sort Order" -msgstr "Ordinamento" +#: model:ir.model.fields,help:connector_magento.field_magento_address_credit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_credit +msgid "Total amount this customer owes you." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1072 -#, python-format -msgid "State %s is not exported." -msgstr "Lo stato %s non è esportato." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount_tax +msgid "Total amount w. tax" +msgstr "Totale tasse incluse" #. module: connector_magento -#: field:magento.backend,product_stock_field_id:0 -msgid "Stock Field" +#: model:ir.model.fields,help:connector_magento.field_magento_address_debit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_debit +msgid "Total amount you have to pay to this vendor." msgstr "" #. module: connector_magento -#: field:magento.stock.picking,openerp_id:0 -msgid "Stock Picking" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total in Company Currency" msgstr "" #. module: connector_magento -#: field:magento.storeview,store_id:0 -msgid "Store" -msgstr "Negozio" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total in Invoice Currency" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_store -#: view:magento.website:connector_magento.view_magento_website_form -#: field:magento.website,store_ids:0 -msgid "Stores" -msgstr "Negozi" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_total_route_ids +#, fuzzy +msgid "Total routes" +msgstr "Totale" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview -#: view:magento.store:connector_magento.view_magento_store_form -#: field:magento.store,storeview_ids:0 -msgid "Storeviews" -msgstr "Storeviews" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_track_service +msgid "Track Service" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Synchronize Metadata" -msgstr "Sincronizza i metadati" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tracking +msgid "Tracking" +msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,tax_class_id:0 -msgid "Tax Class ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_tracking_ref +msgid "Tracking Reference" msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,tax_rate:0 -msgid "Tax Rate" -msgstr "Aliquota fiscale" +#: model:ir.model,name:connector_magento.model_stock_picking +msgid "Transfer" +msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_recompute_pack_op msgid "" -"The amount computed in OpenERP doesn't match with the amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." -msgstr "Il totale calcolato su OpenERP non corrisponde alla quantità su Magento.\nCausa:\nLe tasse sono probabilmente differenti tra OpenERP e Magento. Una posizione fiscale potrebbe aver cambiato il prezzo finale.\nSoluzione:\nControlla la configurazione delle tue tasse e delle tue posizioni fiscali e correggile se necessario." +"True if reserved quants changed, which mean we might need to recompute the " +"package operations" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:80 -#, python-format -msgid "The carrier %s does not export tracking numbers." -msgstr "Il trasportatore %s non esporta i numeri di tracciamento." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_type +msgid "Type" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/product.py:558 -#, python-format -msgid "" -"The configurable product is not imported in OpenERP, because only the simple" -" products are used in the sales orders." -msgstr "Il prodotto configurabile non è importato in OpenERP, perchè solo i prodotti semplici vengono usati negli ordini di vendita" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_code +msgid "Type of Operation" +msgstr "" #. module: connector_magento -#: help:magento.backend,use_custom_api_path:0 -msgid "" -"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a" -" custom API path, in that case, the location has to be completed with the " -"custom API path " -msgstr "Il path predefinito del API è '/index.php/api/xmlrpc''. Seleziona questo box se utilizzi un path personalizzato per l'API. In quel caso la posizione deve essere completata con il path custom dell'API." +#: code:addons/connector_magento/models/magento_website/importer.py:22 +#, python-format +msgid "Undefined" +msgstr "Non definito" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount_tax -msgid "" -"The tax amount computed in OpenERP doesn't match with the tax amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." -msgstr "Il totale delle tasse calcolato su OpenERP non corrisponde al totale delle tasse su Magento.\nCausa:\nLe tasse sono probabilmente differenti tra OpenERP e Magento. Una posizione fiscale potrebbe aver cambiato il prezzo finale.\nSoluzione:\nControlla la configurazione delle tue tasse e delle tue posizioni fiscali e correggile se necessario." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_unit +msgid "Unit Price" +msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_export_partner:0 -msgid "This installs the module connector_magento_export_partner." -msgstr "Questo installa il modulo connector_magento_export_partner." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of Measure" +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "" -"This option should respect the same\n" -" configuration as Magento. Pay\n" -" attention to the taxes on the products,\n" -" which should surely include prices when\n" -" this option is activated." -msgstr "Questa opzione dovrebbe essere\nla stessa impostata in Magento. \nFai attenzione che le tasse sul prodotto\ndevono essere incluse nei prezzi quando\nquesta opzione è attivata." +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of measurement for Weight" +msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount -msgid "Total Amount differs from Magento" -msgstr "Il totale è diverso da quello di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread +msgid "Unread Messages" +msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount_tax -msgid "Total Tax Amount differs from Magento" -msgstr "Il totale delle tasse è diverso da quello di Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Unread Messages Counter" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount:0 -msgid "Total amount" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_untaxed +#, fuzzy +msgid "Untaxed Amount" msgstr "Totale" #. module: connector_magento -#: field:magento.sale.order,total_amount_tax:0 -msgid "Total amount w. tax" -msgstr "Totale tasse incluse" - -#. module: connector_magento -#: code:addons/connector_magento/magento_model.py:575 -#, python-format -msgid "Undefined" -msgstr "Non definito" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed_signed +msgid "Untaxed Amount in Company Currency" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Update" msgstr "Aggiorna" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Update all the products stock quantities" msgstr "Aggiorna tutte le quantità dei prodotti in stock" #. module: connector_magento -#: field:magento.address,updated_at:0 -#: field:magento.product.product,updated_at:0 -#: field:magento.res.partner,updated_at:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_updated_at msgid "Updated At (on Magento)" msgstr "Aggiornato al (su Magento)" #. module: connector_magento -#: help:magento.backend,location:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_location msgid "Url to magento application" msgstr "L'url all'applicazione Magento" @@ -1200,84 +4324,312 @@ msgid "Use Default Config" msgstr "Usa la configurazione di default" #. module: connector_magento -#: field:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_auth_basic msgid "Use HTTP Auth Basic" msgstr "Usa l'autenticazione HTTP" #. module: connector_magento -#: help:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_auth_basic msgid "" "Use a Basic Access Authentication for the API. The Magento server could be " "configured to restrict access using a HTTP authentication based on a " "username and a password." -msgstr "Utilizza un'autenticazione basic per l'API. Il server Magento potrebbe essere configurato per limitare l'accesso utilizzando un'autenticazione basic HTTP composta da utente e password." +msgstr "" +"Utilizza un'autenticazione basic per l'API. Il server Magento potrebbe " +"essere configurato per limitare l'accesso utilizzando un'autenticazione " +"basic HTTP composta da utente e password." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_type +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_type +msgid "" +"Used to select automatically the right address according to the context in " +"sales and purchases documents." +msgstr "" #. module: connector_magento -#: field:magento.backend,username:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_username msgid "Username" msgstr "Username" #. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_ids +#, fuzzy +msgid "Users" +msgstr "Username" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_currency_id +msgid "Utility field to express amount currency" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 #: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 msgid "Validate" msgstr "Valida" #. module: connector_magento -#: field:magento.backend,version:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_valuation +msgid "Valuation" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_variant +msgid "Variant Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price_extra +msgid "Variant Price Extra" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_supplier +#, fuzzy +msgid "Vendor Location" +msgstr "Locazione" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "Vendor Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference +msgid "Vendor Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_supplier_taxes_id +msgid "Vendor Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_seller_ids +msgid "Vendors" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_version msgid "Version" msgstr "Versione" #. module: connector_magento -#: field:magento.backend,warehouse_id:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_volume +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_volume +msgid "Volume" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_warehouse_id msgid "Warehouse" msgstr "Magazzino" #. module: connector_magento -#: help:magento.backend,warehouse_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_warehouse_id msgid "Warehouse used to compute the stock quantities." msgstr "Magazzino usato per la valorizzazione delle scorte." #. module: connector_magento -#: help:magento.backend,password:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warranty +msgid "Warranty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_password msgid "Webservice password" msgstr "Password del webservice" #. module: connector_magento -#: help:magento.backend,username:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_username msgid "Webservice user" msgstr "Utente del webservice" #. module: connector_magento -#: field:magento.backend,website_ids:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_website_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website msgid "Website" msgstr "Sito web" #. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_website +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_website +msgid "Website of Partner or Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_website_ids #: model:ir.ui.menu,name:connector_magento.menu_magento_website -#: view:magento.backend:connector_magento.view_magento_backend_form -#: field:magento.product.product,website_ids:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Websites" msgstr "Siti web" #. module: connector_magento -#: help:magento.storeview,import_orders_from_date:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_weight +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight +msgid "Weight" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_shipping_weight +msgid "Weight for Shipping" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. This is the default " +"value for all products in this category. It can also directly be set on each " +"product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_input +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. When not set on the " +"product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. This is the " +"default value for all products in this category. It can also directly be set " +"on each product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_output +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. When not set on " +"the product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_journal +msgid "" +"When doing real-time inventory valuation, this is the Accounting Journal in " +"which entries will be automatically posted when stock moves are processed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "" +"When real-time inventory valuation is enabled on a product, this account " +"will hold the current value of the products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_zip +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_zip +msgid "Zip" +msgstr "" + +#. module: connector_magento +#: selection:magento.binding.backend.read,state:0 +msgid "choose" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_import_orders_from_date msgid "" "do not consider non-imported sale orders before this date. Leave empty to " "import all sale orders" -msgstr "non considerare gli ordini di vendita precedenti a questa data come 'non importati'. Lascia vuoto per importare tutti gli ordini di vendita" +msgstr "" +"non considerare gli ordini di vendita precedenti a questa data come 'non " +"importati'. Lascia vuoto per importare tutti gli ordini di vendita" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com" msgstr "es. http://my.magento.com" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com/admin" msgstr "es. http://my.magento.com/admin" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: selection:magento.binding.backend.read,state:0 +#, fuzzy +msgid "get" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "mag-" msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding_backend_read +msgid "magento.binding.backend.read" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_config_specializer +msgid "magento.config.specializer" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner_category +#, fuzzy +msgid "magento.res.partner.category" +msgstr "Categoria padre di Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_warehouse_id +#, fuzzy +msgid "warehouse" +msgstr "Magazzino" + +#~ msgid "Connector Configuration" +#~ msgstr "Configurazione del connettore" + +#~ msgid "Export Partners to Magento (experimental)" +#~ msgstr "Esporta i partner verso Magento (sperimentale)" + +#~ msgid "Extensions" +#~ msgstr "Estensioni" + +#~ msgid "Last synchronization date" +#~ msgstr "Data ultima sincronizzazione" + +#~ msgid "Magentoerpconnect" +#~ msgstr "Magentoerpconnect" + +#~ msgid "Picking List" +#~ msgstr "Lista di picking" + +#~ msgid "Prices are managed in OpenERP with pricelists" +#~ msgstr "I prezzi sono gestiti in OpenERP con i listini prezzi" + +#~ msgid "" +#~ "Prices are set in OpenERP and exported to Magento.\n" +#~ "\n" +#~ "This installs the module connector_magento_pricing." +#~ msgstr "" +#~ "I prezzi vengono impostati su OpenERP ed esportati su Magento.\n" +#~ "\n" +#~ "Questo installa il modulo connector_magento_pricing." + +#~ msgid "This installs the module connector_magento_export_partner." +#~ msgstr "Questo installa il modulo connector_magento_export_partner." diff --git a/connector_magento/i18n/nl.po b/connector_magento/i18n/nl.po index aea348864..88217e496 100644 --- a/connector_magento/i18n/nl.po +++ b/connector_magento/i18n/nl.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * connector_magento -# +# # Translators: # FIRST AUTHOR , 2014 msgid "" @@ -11,20 +11,77 @@ msgstr "" "POT-Creation-Date: 2015-07-22 09:38+0000\n" "PO-Revision-Date: 2015-07-08 12:07+0000\n" "Last-Translator: OCA Transbot \n" -"Language-Team: Dutch (http://www.transifex.com/oca/OCA-connector-magento-8-0/language/nl/)\n" +"Language-Team: Dutch (http://www.transifex.com/oca/OCA-connector-magento-8-0/" +"language/nl/)\n" +"Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: connector_magento -#: help:magento.sale.order,magento_order_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_state +msgid "" +" * Draft: not confirmed yet and will not be scheduled until confirmed\n" +" * Waiting Another Operation: waiting for another move to proceed before it " +"becomes automatically available (e.g. in Make-To-Order flows)\n" +" * Waiting Availability: still waiting for the availability of products\n" +" * Partially Available: some products are available and reserved\n" +" * Ready to Transfer: products reserved, simply waiting for confirmation.\n" +" * Transferred: has been processed, can't be modified or cancelled anymore\n" +" * Cancelled: has been cancelled, can't be confirmed anymore" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_state +msgid "" +" * The 'Draft' status is used when a user is encoding a new and unconfirmed " +"Invoice.\n" +" * The 'Pro-forma' status is used when the invoice does not have an invoice " +"number.\n" +" * The 'Open' status is used when user creates invoice, an invoice number is " +"generated. It stays in the open status till the user pays the invoice.\n" +" * The 'Paid' status is set automatically when the invoice is paid. Its " +"related journal entries may or may not be reconciled.\n" +" * The 'Cancelled' status is used when user cancel invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_count +msgid "# Product Variants" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_product_count +#, fuzzy +msgid "# Products" +msgstr "Product" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sales_count +msgid "# Sales" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_count +#, fuzzy +msgid "# of Invoices" +msgstr "Factuur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_count +#, fuzzy +msgid "# of Sales Order" +msgstr "Verkooporder" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_magento_order_id msgid "'order_id' field in Magento" msgstr "'order_id' veld in Magento" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form msgid "(recompute)" msgstr "(herbereken)" @@ -44,1151 +101,4181 @@ msgstr "" #: sql_constraint:magento.product.product:0 #: sql_constraint:magento.res.partner:0 #: sql_constraint:magento.res.partner.category:0 -#: sql_constraint:magento.sale.order:0 -#: sql_constraint:magento.sale.order.line:0 +#: sql_constraint:magento.sale.order:0 sql_constraint:magento.sale.order.line:0 #: sql_constraint:magento.stock.picking:0 sql_constraint:magento.store:0 #: sql_constraint:magento.storeview:0 sql_constraint:magento.website:0 msgid "A binding already exists with the same Magento ID." msgstr "" #. module: connector_magento -#: sql_constraint:magento.address:0 -msgid "A partner address can only have one binding by backend." +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_type +msgid "" +"A category of the view type is a virtual category that can be used as the " +"parent of another category to create a hierarchical structure." msgstr "" #. module: connector_magento -#: help:magento.backend,sale_prefix:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_sale msgid "" -"A prefix put before the name of imported sales orders.\n" -"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, will be named 'mag-100000692' in OpenERP." +"A description of the Product that you want to communicate to your customers. " +"This description will be copied to every Sale Order, Delivery Order and " +"Customer Invoice/Refund" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "API" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_purchase +msgid "" +"A description of the Product that you want to communicate to your vendors. " +"This description will be copied to every Purchase Order, Receipt and Vendor " +"Bill/Refund." msgstr "" #. module: connector_magento -#: field:magento.address,is_magento_order_address:0 -msgid "Address from a Magento Order" -msgstr "Adres van een Magento order" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "" +"A parent sales order has been canceled on the backend and needs to be " +"canceled." +msgstr "" #. module: connector_magento -#: field:magento.backend,admin_location:0 -msgid "Admin Location" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_id +msgid "A parent sales order is a sales order replaced by this one." msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Advanced Configuration" -msgstr "Geavanceerde configuratie" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "A parent sales order needs cancel" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:173 -#, python-format -msgid "Already exported" +#: sql_constraint:magento.address:0 +msgid "A partner address can only have one binding by backend." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:611 -#, python-format -msgid "Already imported" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description +msgid "" +"A precise description of the Product, used only for internal information " +"purposes." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:208 -#, python-format -msgid "Already up-to-date." +#: model:ir.model.fields,help:connector_magento.field_magento_backend_sale_prefix +msgid "" +"A prefix put before the name of imported sales orders.\n" +"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, " +"will be named 'mag-100000692' in Odoo." msgstr "" #. module: connector_magento -#: help:magento.res.partner,consider_as_company:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_type msgid "" -"An account imported with a 'company' in the billing address is considered as a company.\n" -" The partner takes the name of the company and is not merged with the billing address." +"A stockable product is a product for which you manage stock. The \"Inventory" +"\" app has to be installed.\n" +"A consumable product, on the other hand, is a product for which stock is not " +"managed.\n" +"A service is a non-material product you provide.\n" +"A digital content is a non-material product you sell online. The files " +"attached to the products are the one that are sold on the e-commerce such as " +"e-books, music, pictures,... The \"Digital Product\" module has to be " +"installed." msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_backend -msgid "Backends" -msgstr "Backends" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "API" +msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_password:0 -msgid "Basic Auth. Password" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_account_id +msgid "Account" msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_username:0 -msgid "Basic Auth. Username" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "Account Payable" msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_password:0 -msgid "Basic access authentication web server side password" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "Account Receivable" msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_username:0 -msgid "Basic access authentication web server side username" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date +msgid "Accounting Date" msgstr "" #. module: connector_magento -#: field:res.partner,birthday:0 -msgid "Birthday" -msgstr "Verjaardag" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction +msgid "Action Needed" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_bank_account_required msgid "" -"By clicking on the buttons,\n" -" you will initiate the synchronizations\n" -" with Magento.\n" -" Note that the import or exports\n" -" won't be done directly,\n" -" they will create 'Jobs'\n" -" executed as soon as possible." -msgstr "Door op de knoppen te drukken,\n start u de synchronisatie\n met Magento.\n Houdt er rekening mee dat de \n import of export niet direct start,\n maar dat zij 'taken' genereren\n welke z.s.m. worden uitgevoerd." +"Activate this option if this payment method requires you to know the bank " +"account number of your customer or supplier." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:180 -#, python-format -msgid "" -"Canceled: the delivery order does not contain lines from the original sale " -"order." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_active +msgid "Active" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_delivery_carrier -msgid "Carrier" -msgstr "Vervoerder" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_comment +#, fuzzy +msgid "Additional Information" +msgstr "Informatie" #. module: connector_magento -#: help:magento.storeview,no_sales_order_sync:0 -msgid "" -"Check if the storeview is active in Magento but its sales orders should not " -"be imported." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_type +msgid "Address Type" msgstr "" #. module: connector_magento -#: help:magento.product.product,no_stock_sync:0 -msgid "Check this to exclude the product from stock synchronizations." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_magento_order_address +msgid "Address from a Magento Order" +msgstr "Adres van een Magento order" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_admin_location +msgid "Admin Location" msgstr "" #. module: connector_magento -#: help:magento.backend,product_stock_field_id:0 -msgid "" -"Choose the field of the product which will be used for stock inventory updates.\n" -"If empty, Quantity Available is used." -msgstr "Kies het veld van het product welke wordt gebruikt voor het bijwerken van de voorraad.\nIndien leeg wordt de beschikbare voorraad gebruikt." +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Advanced Configuration" +msgstr "Geavanceerde configuratie" #. module: connector_magento -#: field:magento.storeview,code:0 field:magento.website,code:0 -msgid "Code" -msgstr "Code" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_all_qty_delivered +msgid "All quantities delivered" +msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,company:0 -msgid "Company" -msgstr "Bedrijf" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "Allow moving packs" +msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Complete" -msgstr "Compleet" +#: code:addons/connector_magento/models/stock_picking/exporter.py:69 +#, python-format +msgid "Already exported" +msgstr "" #. module: connector_magento -#: field:magento.product.product,magento_qty:0 -msgid "Computed Quantity" -msgstr "Berekende hoeveelheid" +#: code:addons/connector_magento/models/sale_order/importer.py:368 +#, python-format +msgid "Already imported" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_connector_config_settings -msgid "Connector Configuration" +#: code:addons/connector_magento/components/importer.py:198 +#, python-format +msgid "Already up-to-date." msgstr "" #. module: connector_magento -#: field:magento.res.partner,consider_as_company:0 -msgid "Considered as company" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual +msgid "Amount Due" msgstr "" #. module: connector_magento -#: view:payment.method:connector_magento.payment_method_view_form -msgid "Create invoice on" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Amount Due in Company Currency" msgstr "" #. module: connector_magento -#: field:magento.store,create_invoice_on:0 -#: field:payment.method,create_invoice_on:0 -msgid "Create invoice on action" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_signed +msgid "Amount Due in Invoice Currency" msgstr "" #. module: connector_magento -#: field:magento.address,created_at:0 -#: field:magento.product.product,created_at:0 -#: field:magento.res.partner,created_at:0 -msgid "Created At (on Magento)" -msgstr "Aangemaakt op (in Magento)" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_consider_as_company +msgid "" +"An account imported with a 'company' in the billing address is considered as " +"a company.\n" +" The partner takes the name of the company and is not merged with the " +"billing address." +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,create_uid:0 -#: field:magento.address,create_uid:0 field:magento.backend,create_uid:0 -#: field:magento.product.category,create_uid:0 -#: field:magento.product.product,create_uid:0 -#: field:magento.res.partner,create_uid:0 -#: field:magento.res.partner.category,create_uid:0 -#: field:magento.sale.order,create_uid:0 -#: field:magento.sale.order.line,create_uid:0 -#: field:magento.stock.picking,create_uid:0 field:magento.store,create_uid:0 -#: field:magento.storeview,create_uid:0 field:magento.website,create_uid:0 -msgid "Created by" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_related_project_id +msgid "Analytic Account" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,create_date:0 -#: field:magento.address,create_date:0 field:magento.backend,create_date:0 -#: field:magento.product.category,create_date:0 -#: field:magento.product.product,create_date:0 -#: field:magento.res.partner,create_date:0 -#: field:magento.res.partner.category,create_date:0 -#: field:magento.sale.order,create_date:0 -#: field:magento.sale.order.line,create_date:0 -#: field:magento.stock.picking,create_date:0 field:magento.store,create_date:0 -#: field:magento.storeview,create_date:0 field:magento.website,create_date:0 -msgid "Created on" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_analytic_tag_ids +msgid "Analytic Tags" msgstr "" #. module: connector_magento -#: field:magento.backend,use_custom_api_path:0 -msgid "Custom Api Path" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_account_analytic_id +msgid "Analytic account" msgstr "" #. module: connector_magento -#: field:magento.address,is_default_billing:0 -msgid "Default Invoice" -msgstr "Standaard factuur" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_value_ids +msgid "Attributes" +msgstr "" #. module: connector_magento -#: field:magento.backend,default_lang_id:0 -msgid "Default Language" -msgstr "Standaardtaal" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_workflow_process_id +msgid "Automatic Workflow" +msgstr "" #. module: connector_magento -#: field:magento.backend,default_category_id:0 -msgid "Default Product Category" -msgstr "Standaard productcategorie" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backorder_id +#, fuzzy +msgid "Back Order of" +msgstr "Verkooporder" #. module: connector_magento -#: field:magento.address,is_default_shipping:0 -msgid "Default Shipping" -msgstr "Standaard verzending" +#: model:ir.ui.menu,name:connector_magento.menu_magento_backend +msgid "Backends" +msgstr "Backends" #. module: connector_magento -#: field:magento.product.category,description:0 -msgid "Description" -msgstr "Beschrijving" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_account_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_account_count +msgid "Bank" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Do Not Manage Stock" -msgstr "Geen voorraad beheren" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_bank_id +msgid "Bank Account" +msgstr "" #. module: connector_magento -#: help:magento.store,send_invoice_paid_mail:0 +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_bank_id msgid "" -"Does the invoice export/creation should send an email notification on " -"Magento side?" -msgstr "Moet het exporteren of aanmaken van een factuur een e-mail sturen vanaf de Magento zijde?" +"Bank Account Number to which the invoice will be paid. A Company bank " +"account if this is a Customer Invoice or Vendor Refund, otherwise a Partner " +"bank account number." +msgstr "" #. module: connector_magento -#: help:magento.store,send_picking_done_mail:0 -msgid "" -"Does the picking export/creation should send an email notification on " -"Magento side?" -msgstr "Moet het exporteren of aanmaken van een uitgaande levering een e-mail sturen vanaf de Magento zijde?" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_bank_account_required +msgid "Bank Account Required" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,emailid:0 -msgid "E-mail address" -msgstr "E-mail adres" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_ids +msgid "Banks" +msgstr "" #. module: connector_magento -#: field:magento.storeview,enabled:0 -msgid "Enabled" -msgstr "Ingeschakeld" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_barcode +msgid "Barcode" +msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_export_partner:0 -msgid "Export Partners to Magento (experimental)" -msgstr "Exporteer relaties naar Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_list_price +msgid "" +"Base price to compute the customer price. Sometimes called the catalog price." +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_export_tracking:0 -msgid "Export tracking numbers" -msgstr "Exporteer traceer nummers" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic Auth. Password" +msgstr "" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Extensions" -msgstr "Extensies" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic Auth. Username" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,guest_customer:0 -msgid "Guest Customer" -msgstr "Gast klant" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic access authentication web server side password" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "HTTP Authentication" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic access authentication web server side username" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,id:0 field:magento.address,id:0 -#: field:magento.backend,id:0 field:magento.binding,id:0 -#: field:magento.product.category,id:0 field:magento.product.product,id:0 -#: field:magento.res.partner,id:0 field:magento.res.partner.category,id:0 -#: field:magento.sale.order,id:0 field:magento.sale.order.line,id:0 -#: field:magento.stock.picking,id:0 field:magento.store,id:0 -#: field:magento.storeview,id:0 field:magento.website,id:0 -msgid "ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image +msgid "Big-sized image" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,magento_id:0 -#: field:magento.address,magento_id:0 field:magento.binding,magento_id:0 -#: field:magento.product.category,magento_id:0 -#: field:magento.product.product,magento_id:0 -#: field:magento.res.partner,magento_id:0 -#: field:magento.res.partner.category,magento_id:0 -#: field:magento.sale.order,magento_id:0 -#: field:magento.sale.order.line,magento_id:0 -#: field:magento.stock.picking,magento_id:0 field:magento.store,magento_id:0 -#: field:magento.storeview,magento_id:0 field:magento.website,magento_id:0 -msgid "ID on Magento" -msgstr "ID in Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_birthday +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_users_birthday +msgid "Birthday" +msgstr "Verjaardag" #. module: connector_magento -#: help:magento.backend,default_category_id:0 -msgid "" -"If a default category is selected, products imported without a category will" -" be linked to it." -msgstr "Indien de standaard categorie is geselecteerd, worden producten zonder een categorie aan deze standaard categorie gekoppeld." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_bounce +msgid "Bounce" +msgstr "" #. module: connector_magento -#: help:magento.backend,default_lang_id:0 -msgid "" -"If a default language is selected, the records will be imported in the translation of this language.\n" -"Note that a similar configuration exists for each storeview." -msgstr "Als een standaard taal is geselecteerd, worden de regels geïmporteerd in de vertaling van deze taal.\nLet op, deze instelling bestaat voor iedere winkelweergave." +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_bulk +msgid "Bulk Weight" +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders" -msgstr "Importeer verkooporders" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#, fuzzy +msgid "" +"By clicking on the buttons,\n" +" you will initiate the synchronizations\n" +" with Magento.\n" +" Note that the import or exports\n" +" won't be done directly,\n" +" they will create 'Jobs'\n" +" executed as soon as possible." +msgstr "" +"Door op de knoppen te drukken,\n" +" start u de synchronisatie\n" +" met Magento.\n" +" Houdt er rekening mee dat de \n" +" import of export niet direct start,\n" +" maar dat zij 'taken' genereren\n" +" welke z.s.m. worden uitgevoerd." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered_updateable +#, fuzzy +msgid "Can Edit Delivered" +msgstr "Magento uitgaande levering" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders since" -msgstr "Importeer verkooporders vanaf" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_purchase_ok +msgid "Can be Purchased" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import all customer groups" -msgstr "Importeer alle klant groepen" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_rental +msgid "Can be Rent" +msgstr "" #. module: connector_magento -#: field:magento.backend,import_categories_from_date:0 -msgid "Import categories from date" -msgstr "Importeer productcategorien vanaf" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_ok +msgid "Can be Sold" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import in background" -msgstr "Importeer op de achtergrond" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Cancel" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import partners from all websites" -msgstr "Importeer relatie van alle websites" +#: code:addons/connector_magento/models/sale_order/common.py:114 +#, python-format +msgid "Cancel sales order %s" +msgstr "" #. module: connector_magento -#: field:magento.website,import_partners_from_date:0 -msgid "Import partners from date" -msgstr "Importeer relaties vanaf" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_canceled_in_backend +msgid "Canceled in backend" +msgstr "" #. module: connector_magento -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import partners since" -msgstr "Importeer relaties vanaf" +#: code:addons/connector_magento/models/stock_picking/exporter.py:76 +#, python-format +msgid "" +"Canceled: the delivery order does not contain lines from the original sale " +"order." +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products categories since" -msgstr "Importeer product categorieën vanaf" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_cancellation_resolved +msgid "Cancellation from the backend resolved" +msgstr "" #. module: connector_magento -#: field:magento.backend,import_products_from_date:0 -msgid "Import products from date" -msgstr "Importeer producten vanaf" +#: model:ir.model,name:connector_magento.model_delivery_carrier +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_id +msgid "Carrier" +msgstr "Vervoerder" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products since" -msgstr "Importeer producten vanaf" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_from_categ_ids +msgid "Category Routes" +msgstr "" #. module: connector_magento -#: field:magento.storeview,import_orders_from_date:0 -msgid "Import sale orders from date" -msgstr "Importeer verkooporders vanaf" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_type +msgid "Category Type" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import sales orders from all store views" -msgstr "Improteer verkooporders van alle winkelweergaven" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_channel_ids +msgid "Channels" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Imports" -msgstr "Imports" +#: model:ir.model.fields,help:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_is_company +msgid "Check if the contact is a company, otherwise it is a person" +msgstr "" #. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Informations" -msgstr "Informatie" +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "" +"Check if the storeview is active in Magento but its sales orders should not " +"be imported." +msgstr "" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form -msgid "Inventory Options" -msgstr "Voorraad opties" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Check the existance of quants linked to this picking" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_account_invoice -#: field:magento.account.invoice,openerp_id:0 -msgid "Invoice" -msgstr "Factuur" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Check the existence of pack operation on the picking" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/invoice.py:122 -#: code:addons/connector_magento/tests/test_export_invoice.py:225 -#, python-format -msgid "Invoice Created" +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer +msgid "Check this box if this contact is a customer." msgstr "" #. module: connector_magento -#: field:magento.storeview,lang_id:0 -msgid "Language" -msgstr "Taal" +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier +msgid "" +"Check this box if this contact is a vendor. If it's not checked, purchase " +"people will not see it when encoding a purchase order." +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,write_uid:0 field:magento.address,write_uid:0 -#: field:magento.backend,write_uid:0 -#: field:magento.product.category,write_uid:0 -#: field:magento.product.product,write_uid:0 -#: field:magento.res.partner,write_uid:0 -#: field:magento.res.partner.category,write_uid:0 -#: field:magento.sale.order,write_uid:0 -#: field:magento.sale.order.line,write_uid:0 -#: field:magento.stock.picking,write_uid:0 field:magento.store,write_uid:0 -#: field:magento.storeview,write_uid:0 field:magento.website,write_uid:0 -msgid "Last Updated by" +#: model:ir.model.fields,help:connector_magento.field_magento_address_employee +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_employee +msgid "Check this box if this contact is an Employee." msgstr "" #. module: connector_magento -#: field:magento.account.invoice,write_date:0 -#: field:magento.address,write_date:0 field:magento.backend,write_date:0 -#: field:magento.product.category,write_date:0 -#: field:magento.product.product,write_date:0 -#: field:magento.res.partner,write_date:0 -#: field:magento.res.partner.category,write_date:0 -#: field:magento.sale.order,write_date:0 -#: field:magento.sale.order.line,write_date:0 -#: field:magento.stock.picking,write_date:0 field:magento.store,write_date:0 -#: field:magento.storeview,write_date:0 field:magento.website,write_date:0 -msgid "Last Updated on" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_no_stock_sync +msgid "Check this to exclude the product from stock synchronizations." msgstr "" #. module: connector_magento -#: help:magento.product.product,magento_qty:0 -msgid "Last computed quantity to send on Magento." -msgstr "Laatst berekende hoeveelheid om te versturen naar Magento" +#: code:addons/connector_magento/models/magento_backend/common.py:234 +#, python-format +msgid "" +"Check your configuration, we can't get the data. Here is the error:\n" +"%s" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,sync_date:0 field:magento.address,sync_date:0 -#: field:magento.binding,sync_date:0 -#: field:magento.product.category,sync_date:0 -#: field:magento.product.product,sync_date:0 -#: field:magento.res.partner,sync_date:0 -#: field:magento.res.partner.category,sync_date:0 -#: field:magento.sale.order,sync_date:0 -#: field:magento.sale.order.line,sync_date:0 -#: field:magento.stock.picking,sync_date:0 field:magento.store,sync_date:0 -#: field:magento.storeview,sync_date:0 field:magento.website,sync_date:0 -msgid "Last synchronization date" -msgstr "Laatste synchronisatie datum" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_child_id +#, fuzzy +msgid "Child Categories" +msgstr "Magento onderliggende categorien" #. module: connector_magento -#: field:magento.backend,location:0 -msgid "Location" -msgstr "Locatie" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_child_ids +msgid "Child Tags" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_root -#: view:payment.method:connector_magento.payment_method_view_form -#: view:res.partner.category:connector_magento.view_partner_category_form +#: model:ir.model.fields,help:connector_magento.field_magento_backend_product_stock_field_id +msgid "" +"Choose the field of the product which will be used for stock inventory " +"updates.\n" +"If empty, Quantity Available is used." +msgstr "" +"Kies het veld van het product welke wordt gebruikt voor het bijwerken van de " +"voorraad.\n" +"Indien leeg wordt de beschikbare voorraad gebruikt." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_city +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_city +msgid "City" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Close" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_code +msgid "Code" +msgstr "Code" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_color +msgid "Color Index" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_partner_id +msgid "Commercial Entity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref_company_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref_company_ids +msgid "Companies that refers to partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_company_id +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_res_users_company +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Company" +msgstr "Bedrijf" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_currency_id +#, fuzzy +msgid "Company Currency" +msgstr "Bedrijf" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_name +#, fuzzy +msgid "Company Name" +msgstr "Bedrijf" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_company_name +#, fuzzy +msgid "Company Name Entity" +msgstr "Berekende hoeveelheid" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_type +#, fuzzy +msgid "Company Type" +msgstr "Bedrijf" + +#. module: connector_magento +#: selection:magento.stock.picking,picking_method:0 +msgid "Complete" +msgstr "Compleet" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contact_address +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contact_address +#, fuzzy +msgid "Complete Address" +msgstr "Compleet" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date_done +msgid "Completion Date of Transfer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_qty +msgid "Computed Quantity" +msgstr "Berekende hoeveelheid" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_confirmation_date +#, fuzzy +msgid "Confirmation Date" +msgstr "Belangrijkste instellingen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_consider_as_company +msgid "Considered as company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_child_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_child_ids +msgid "Contacts" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contracts_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contracts_count +msgid "Contracts" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_standard_price +msgid "Cost" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_cost_method +msgid "Cost method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_standard_price +msgid "" +"Cost of the product template used for standard stock valuation in accounting " +"and used as a base price on purchase orders. Expressed in the default unit " +"of measure of the product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_cost_method +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_cost_method +#, fuzzy +msgid "Costing Method" +msgstr "Verzamelmethode" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_count +msgid "Count Payment Token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_bounce +msgid "Counter of the number of bounced emails for this contact" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_country_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_country_id +msgid "Country" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +msgid "Create invoice on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_payment_mode_create_invoice_on +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_invoice_on +msgid "Create invoice on action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_created_at +msgid "Created At (on Magento)" +msgstr "Aangemaakt op (in Magento)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_uid +msgid "Created by" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_date +msgid "Created on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date +msgid "Creation Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date +msgid "Creation Date, usually the time of the order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit_limit +msgid "Credit Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_currency_id +msgid "Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_qty_available +msgid "" +"Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"stored in the Stock Location of the Warehouse of this Shop, or any of its " +"children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_custom_api_path +msgid "Custom Api Path" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_id +#, fuzzy +msgid "Customer" +msgstr "Gast klant" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_delay +msgid "Customer Lead Time" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_customer +#, fuzzy +msgid "Customer Location" +msgstr "Locatie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Customer Payment Mode" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "Customer Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_partner_ref +#, fuzzy +msgid "Customer Ref" +msgstr "Gast klant" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_client_order_ref +msgid "Customer Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_taxes_id +msgid "Customer Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_date +msgid "Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date_done +msgid "Date of Transfer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_last_post +msgid "Date of the last message posted on the record." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_confirmation_date +msgid "Date on which the sale order is confirmed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_billing +msgid "Default Invoice" +msgstr "Standaard factuur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_lang_id +msgid "Default Language" +msgstr "Standaardtaal" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_owner_id +#, fuzzy +msgid "Default Owner" +msgstr "Standaard factuur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_category_id +msgid "Default Product Category" +msgstr "Standaard productcategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_shipping +msgid "Default Shipping" +msgstr "Standaard verzending" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_id +msgid "Default Unit of Measure used for all stock operation." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_po_id +msgid "" +"Default Unit of Measure used for purchase orders. It must be in the same " +"category than the default unit of measure." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_trust +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_trust +msgid "Degree of trust you have in this debtor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered +msgid "Delivered" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_delivery_count +msgid "Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_shipping_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery Address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_customer_lead +msgid "Delivery Lead Time" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_carrier_id +msgid "Delivery Method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_count +#, fuzzy +msgid "Delivery Orders" +msgstr "Magento uitgaande levering" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_type +msgid "Delivery Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_shipping_id +msgid "Delivery address for current invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_route_ids +msgid "" +"Depending on the modules installed, this will allow you to define the route " +"of the product: whether it will be bought, manufactured, MTO/MTS,..." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_name +msgid "Description" +msgstr "Beschrijving" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_picking +#, fuzzy +msgid "Description on Picking" +msgstr "Beschrijving" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_dest_id +msgid "Destination Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_discount +msgid "Discount (%)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_display_name +msgid "Display Name" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Do Not Manage Stock" +msgstr "Geen voorraad beheren" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "" +"Does the invoice export/creation should send an email notification on " +"Magento side?" +msgstr "" +"Moet het exporteren of aanmaken van een factuur een e-mail sturen vanaf de " +"Magento zijde?" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_picking_done_mail +msgid "" +"Does the picking export/creation should send an email notification on " +"Magento side?" +msgstr "" +"Moet het exporteren of aanmaken van een uitgaande levering een e-mail sturen " +"vanaf de Magento zijde?" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_due +msgid "Due Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_emailid +msgid "E-mail address" +msgstr "E-mail adres" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_partner_share +msgid "" +"Either customer (no user), either shared user. Indicated the current partner " +"is a customer without access or with a limited access created for sharing " +"data." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email +msgid "Email" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_notify_email +msgid "Email Messages and Notifications" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_employee +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_employee +msgid "Employee" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_enabled +msgid "Enabled" +msgstr "Ingeschakeld" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_price +#, fuzzy +msgid "Estimated Delivery Price" +msgstr "Magento uitgaande levering" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_exception_ids +#, fuzzy +msgid "Exceptions" +msgstr "Opties" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_expense_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_expense_id +msgid "Expense Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_validity_date +msgid "Expiration Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_export_tracking +msgid "Export tracking numbers" +msgstr "Exporteer traceer nummers" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_ids +msgid "Extra categories" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_fax +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_fax +msgid "Fax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_data +msgid "File" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_name +#, fuzzy +msgid "File Name" +msgstr "Naam" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_carrier_id +msgid "Fill this field if you plan to invoice the shipping based on picking." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_firstname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_firstname +msgid "First name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_fiscal_position_id +msgid "Fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_follower_ids +msgid "Followers" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_removal_strategy_id +msgid "Force Removal Strategy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_virtual_available +#, fuzzy +msgid "Forecast Quantity" +msgstr "Berekende hoeveelheid" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_email_formatted +msgid "Format email address \"Name \"" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email_formatted +msgid "Formatted Email" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Get" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_packaging_ids +msgid "" +"Gives the different ways to package the same product. This has no impact on " +"the picking order and is mainly used if you use the EDI module." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sequence +msgid "Gives the sequence order when displaying a product list" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_guest_customer +msgid "Guest Customer" +msgstr "Gast klant" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_hs_code +#, fuzzy +msgid "HS Code" +msgstr "Code" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "HTTP Authentication" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_has_checkpoint +msgid "Has Checkpoint" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Has Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_has_scrap_move +msgid "Has Scrap Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_need_cancel +msgid "Has been canceled on the backend, need to be canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_has_outstanding +msgid "Has outstanding" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Has quants already reserved" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "Has unreconciled entries" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Here is the file with information read drom the backend:" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id_5804 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_id +msgid "ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_external_id +msgid "ID on Magento" +msgstr "ID in Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_im_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_im_status +msgid "IM Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_category_id +msgid "" +"If a default category is selected, products imported without a category will " +"be linked to it." +msgstr "" +"Indien de standaard categorie is geselecteerd, worden producten zonder een " +"categorie aan deze standaard categorie gekoppeld." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_lang_id +msgid "" +"If a default language is selected, the records will be imported in the " +"translation of this language.\n" +"Note that a similar configuration exists for each storeview." +msgstr "" +"Als een standaard taal is geselecteerd, worden de regels geïmporteerd in de " +"vertaling van deze taal.\n" +"Let op, deze instelling bestaat voor iedere winkelweergave." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "" +"If checked, this shows the packs to be moved as a whole in the Operations " +"tab all the time, even if there was no entire pack reserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_opt_out +msgid "" +"If opt-out is checked, this contact has refused to receive emails for mass " +"mailing and marketing campaign. Filter 'Available for Mass Mailing' allows " +"users to filter the partners when performing mass mailing." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'. The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_team_id +msgid "" +"If set, sale team used notably for sales and assignations related to this " +"partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "" +"If specified, this fiscal position will be used to fill the field fiscal " +"position on the sale order created by the connector.The value can also be " +"specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_warehouse_id +msgid "" +"If specified, this warehouse will be used to load fill the field warehouse " +"(and company) on the sale order created by the connector.The value can also " +"be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_lang +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_lang +msgid "" +"If the selected language is loaded in the system, all documents related to " +"this contact will be printed in this language. If not, it will be English." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_website_is_multi_company +msgid "" +"If this flag is set, it is possible to choose warehouse at each level. When " +"import partner, ignore company_id if this flag is set." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_backorder_id +msgid "" +"If this shipment was split, then this field links to the shipment which " +"contains the already processed part." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_active +msgid "" +"If unchecked, it will allow you to hide the product without removing it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_payment_term_id +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. If you keep the payment term and the due " +"date empty, it means direct payment. The payment term may compute several " +"due dates, for example 50% now, 50% in one month." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_due +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. The payment term may compute several due " +"dates, for example 50% now and 50% in one month, but if you want to force a " +"due date, make sure that the payment term is not set on the invoice. If you " +"keep the payment term and the due date empty, it means direct payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_ignore_exception +#, fuzzy +msgid "Ignore Exceptions" +msgstr "Voorraad opties" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image +msgid "Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image +msgid "" +"Image of the product variant (Big-sized image of product template if false). " +"It is automatically resized as a 1024x1024px image, with aspect ratio " +"preserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_medium +msgid "" +"Image of the product variant (Medium-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_small +msgid "" +"Image of the product variant (Small-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders" +msgstr "Importeer verkooporders" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders since" +msgstr "Importeer verkooporders vanaf" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import all customer groups" +msgstr "Importeer alle klant groepen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_categories_from_date +msgid "Import categories from date" +msgstr "Importeer productcategorien vanaf" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import in background" +msgstr "Importeer op de achtergrond" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import partners from all websites" +msgstr "Importeer relatie van alle websites" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_import_partners_from_date +msgid "Import partners from date" +msgstr "Importeer relaties vanaf" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import partners since" +msgstr "Importeer relaties vanaf" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products categories since" +msgstr "Importeer product categorieën vanaf" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_products_from_date +msgid "Import products from date" +msgstr "Importeer producten vanaf" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products since" +msgstr "Importeer producten vanaf" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_import_orders_from_date +msgid "Import sale orders from date" +msgstr "Importeer verkooporders vanaf" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import sales orders from all store views" +msgstr "Improteer verkooporders van alle winkelweergaven" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Imports" +msgstr "Imports" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_income_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_income_id +msgid "Income Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_incoming_qty +msgid "Incoming" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_incoterms_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_incoterm +msgid "Incoterms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_incoterms_id +msgid "" +"Incoterms are series of sales terms. They are used to divide transaction " +"costs and responsibilities between buyer and seller and reflect state-of-the-" +"art transportation practices." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Informations" +msgstr "Informatie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_default_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref +msgid "Internal Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_barcode +msgid "International Article Number used for product identification." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_incoterm +msgid "" +"International Commercial Terms are a series of predefined commercial terms " +"used in international transactions." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_inventory +#, fuzzy +msgid "Inventory Location" +msgstr "Voorraad opties" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +msgid "Inventory Options" +msgstr "Voorraad opties" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_valuation +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_valuation +#, fuzzy +msgid "Inventory Valuation" +msgstr "Voorraad opties" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_invoice +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn +msgid "Invoice" +msgstr "Factuur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_invoice_id +#, fuzzy +msgid "Invoice Address" +msgstr "Magento adres" + +#. module: connector_magento +#: code:addons/connector_magento/models/account_invoice/exporter.py:26 +#, python-format +msgid "Invoice Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_invoice +#, fuzzy +msgid "Invoice Date" +msgstr "Factuur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_invoice_line_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_lines +#, fuzzy +msgid "Invoice Lines" +msgstr "Factuur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_shipping_on_delivery +msgid "Invoice Shipping on Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_status +#, fuzzy +msgid "Invoice Status" +msgstr "Factuur" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_refund_invoice_id +msgid "Invoice for which this invoice is the refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_invoiced +#, fuzzy +msgid "Invoiced" +msgstr "Factuur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_ids +#, fuzzy +msgid "Invoices" +msgstr "Factuur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_invoice_policy +msgid "Invoicing Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_is_multi_company +msgid "Is Backend Multi-Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_is_company +#, fuzzy +msgid "Is a Company" +msgstr "Bedrijf" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer +#, fuzzy +msgid "Is a Customer" +msgstr "Gast klant" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_is_delivery +msgid "Is a Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier +msgid "Is a Vendor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reconciled +msgid "" +"It indicates that the invoice has been paid and the journal entry of the " +"invoice has been reconciled with one or several journal entries of payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_sent +msgid "It indicates that the invoice has been sent." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_move_type +msgid "It specifies goods to be deliver partially or all at once" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_function +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_function +msgid "Job Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_journal_id +msgid "Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_id +msgid "Journal Entry" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_name +msgid "Journal Entry Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_journal_item_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_journal_item_count +msgid "Journal Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_invoice +msgid "Keep empty to use the current date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date +msgid "Keep empty to use the invoice date." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_lang_id +msgid "Language" +msgstr "Taal" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_last_post +msgid "Last Message Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_address___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_store___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_website___last_update +msgid "Last Modified on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_date +msgid "Last Updated on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_magento_qty +msgid "Last computed quantity to send on Magento." +msgstr "Laatst berekende hoeveelheid om te versturen naar Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lastname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lastname +msgid "Last name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "" +"Last time the invoices & payments matching was performed for this partner. " +"It is set either if there's not at least an unreconciled debit and an " +"unreconciled credit or if you click the \"Done\" button." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "Latest Invoices & Payments Matching Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_launch_pack_operations +msgid "Launch Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_sequence +msgid "Layout Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_left +msgid "Left Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_left +msgid "Left parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_id +msgid "Link to the automatically generated Journal Items." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_location +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_location_id +msgid "Location" +msgstr "Locatie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_packaging_ids +msgid "Logistical Units" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.menu,name:connector_magento.menu_magento_root +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +#: model:ir.ui.view,arch_db:connector_magento.view_magento_delivery_carrier_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_category_form msgid "Magento" msgstr "Magento" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_address -#: view:magento.address:connector_magento.view_magento_address_form -#: view:magento.address:connector_magento.view_magento_address_tree -msgid "Magento Address" -msgstr "Magento adres" +#: model:ir.model,name:connector_magento.model_magento_address +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_tree +msgid "Magento Address" +msgstr "Magento adres" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_address_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Magento Address Bindings" +msgstr "Magento adres koppelingen" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_backend +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_backend_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_tree +msgid "Magento Backend" +msgstr "Magento backend" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_backend +msgid "Magento Backends" +msgstr "Magento backends" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_carrier_code +#, fuzzy +msgid "Magento Base Carrier Code" +msgstr "Magento vervoerdercode" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding +msgid "Magento Binding (abstract)" +msgstr "Magento koppelingen (abstract)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_stock_picking_magento_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.product_normal_form_view +#: model:ir.ui.view,arch_db:connector_magento.view_invoice_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_sale_order_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_stock_picking_out_magento_form +msgid "Magento Bindings" +msgstr "Magento koppelingen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_code +msgid "Magento Carrier Code" +msgstr "Magento vervoerdercode" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_child_ids +msgid "Magento Child Categories" +msgstr "Magento onderliggende categorien" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Magento Configuration" +msgstr "Magento configuratie" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_stock_picking +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_tree +msgid "Magento Delivery Order" +msgstr "Magento uitgaande levering" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_group_id +msgid "Magento Group (Category)" +msgstr "Magento groep (Categorie)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_id +#, fuzzy +msgid "Magento Id" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_account_invoice +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_tree +msgid "Magento Invoice" +msgstr "Magento factuur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_id +msgid "Magento Order ID" +msgstr "Magento order ID" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_line_ids +msgid "Magento Order Lines" +msgstr "Magento orderregels" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_parent_id +msgid "Magento Parent Category" +msgstr "Magento bovenliggende categorie" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_partner_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_tree +msgid "Magento Partner" +msgstr "Magento relatie" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_product +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_tree +msgid "Magento Product" +msgstr "Magento product" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_category +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_tree +msgid "Magento Product Category" +msgstr "Magento product categorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_type +msgid "Magento Product Type" +msgstr "Magento productsoort" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_binding_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_product_binding_ids +msgid "Magento Products" +msgstr "Magento producten" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_rewards +#: model:product.template,name:connector_magento.product_product_rewards_product_template +#, fuzzy +msgid "Magento Rewards" +msgstr "Magento backends" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_order_id +msgid "Magento Sale Order" +msgstr "Magento verkooporder" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order_line +msgid "Magento Sale Order Line" +msgstr "Magento verkooporderregel" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_tree +#, fuzzy +msgid "Magento Sales Orders" +msgstr "Magento verkooporder" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_tree +msgid "Magento Store" +msgstr "Magento winkel" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_store_credit +#: model:product.template,name:connector_magento.product_product_store_credit_product_template +#, fuzzy +msgid "Magento Store Credit" +msgstr "Magento winkel" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_store +msgid "Magento Stores" +msgstr "Magento winkels" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_storeview +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_storeview_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_tree +msgid "Magento Storeview" +msgstr "Magento winkelweergave" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview +msgid "Magento Storeviews" +msgstr "Magento winkelweergaven" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_tracking_title +msgid "Magento Tracking Title" +msgstr "Magento Tracking Title" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_taxvat +msgid "Magento VAT" +msgstr "Magento BTW" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_website_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_tree +msgid "Magento Website" +msgstr "Magento website" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_website +msgid "Magento Websites" +msgstr "Magento websites" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_backend_id +#, fuzzy +msgid "Magento backend id" +msgstr "Magento backend" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_binding_model +#, fuzzy +msgid "Magento binding model" +msgstr "Magento koppelingen" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:58 +#, python-format +msgid "Magento sales order is already in state %s" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Main Configuration" +msgstr "Belangrijkste instellingen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_main_exception_id +msgid "Main Exception" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backorders +msgid "Manage Inventory Backorders" +msgstr "Beheer voorraad backorders" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Manage Stock" +msgstr "Beheer vororaad" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_manage_stock +msgid "Manage Stock Level" +msgstr "Beheer vororaad" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_track_service +msgid "" +"Manually set quantities on order: Invoice based on the manually entered " +"quantity, without creating an analytic account.\n" +"Timesheets on contract: Invoice based on the tracked hours on the related " +"timesheet.\n" +"Create a task and track hours: Create a task on the sale order validation " +"and track the work hours." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_validity_date +msgid "" +"Manually set the expiration date of your quotation (offer), or it will set " +"the date automatically based on the template if online quotation is " +"installed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_max_date +msgid "Max. Expected Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_medium +msgid "Medium-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_medium +msgid "" +"Medium-sized image of this contact. It is automatically resized as a " +"128x128px image, with aspect ratio preserved. Use this field in form views " +"or some kanban views." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn_msg +#, fuzzy +msgid "Message for Invoice" +msgstr "Magento factuur" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn_msg +#, fuzzy +msgid "Message for Sales Order" +msgstr "Magento verkooporder" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn_msg +#, fuzzy +msgid "Message for Sales Order Line" +msgstr "Magento verkooporderregel" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn_msg +#, fuzzy +msgid "Message for Stock Picking" +msgstr "Uitgaande levering" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_ids +msgid "Messages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_orderpoint_ids +msgid "Minimum Stock Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_mobile +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_mobile +msgid "Mobile" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_name +msgid "Name" +msgstr "Naam" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_need_cancel +msgid "Need to be canceled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_newsletter +msgid "Newsletter" +msgstr "Nieuwsbrief" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "No Sales Order Synchronization" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "No Sell" +msgstr "Niet verkocht" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_no_stock_sync +msgid "No Stock Synchronization" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/queue_job/common.py:27 +#, python-format +msgid "" +"No admin URL configured on the backend or no admin path is defined for this " +"record." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:63 +#, python-format +msgid "No tracking number to send." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_product_ids +msgid "Non pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_notes +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_note +msgid "Notes" +msgstr "Notities" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:363 +#: code:addons/connector_magento/components/exporter.py:368 +#, python-format +msgid "Nothing to export." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_number +msgid "Number" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_number_of_packages +msgid "Number of Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_line_customer_lead +msgid "" +"Number of days between the order confirmation and the shipping of the " +"products to the customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#, fuzzy +msgid "" +"Once imported,\n" +" some types of records,\n" +" like the products or categories,\n" +" need a manual review.\n" +" You will find the list\n" +" of the new records to review\n" +" in the menu 'Connectors > Checkpoint'." +msgstr "" +"Wanneer geïmporteerd,\n" +" hebben sommige soorten regels,\n" +" zoals de producten of categorieën,\n" +" een handmatige controle nodig.\n" +" U vindt de lijst van nieuwe regels\n" +" welke dienen te worden gecontroleerd\n" +" in het menu 'Connectors > " +"Controlepunten'." + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_opt_out +msgid "Opt-Out" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Options" +msgstr "Opties" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_date_order +msgid "Order Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_order_line +#, fuzzy +msgid "Order Lines" +msgstr "Verkooporderregel" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_name +msgid "Order Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_state +msgid "Order Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_invoice_policy +msgid "" +"Ordered Quantity: Invoice based on the quantity the customer ordered.\n" +"Delivered Quantity: Invoiced based on the quantity the vendor delivered " +"(time or deliveries)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_outgoing_qty +msgid "Outgoing" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_outstanding_credits_debits_widget +msgid "Outstanding credits debits widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_owner_id +msgid "Owner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_pack_ids +msgid "Pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_package_ids +msgid "Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_packaging +msgid "Packaging" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 +#: selection:magento.store,create_invoice_on:0 +msgid "Paid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reconciled +msgid "Paid/Reconciled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_id +#, fuzzy +msgid "Parent Category" +msgstr "Relatiecategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_parent_id +msgid "Parent Magento Order" +msgstr "Bovenliggende Mageto order" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_id +#, fuzzy +msgid "Parent Order" +msgstr "Bovenliggende Mageto order" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_name +msgid "Parent name" +msgstr "" + +#. module: connector_magento +#: selection:magento.stock.picking,picking_method:0 +msgid "Partial" +msgstr "Gedeeltelijk" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_partner_id +msgid "Partner" +msgstr "Relatie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_odoo_id +msgid "Partner Category" +msgstr "Relatiecategorie" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner_category +msgid "Partner Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_partner_ids +#, fuzzy +msgid "Partners" +msgstr "Relatie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_password +msgid "Password" +msgstr "Wachtwoord" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit_limit +msgid "Payable Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_mode_id +#, fuzzy +msgid "Payment Mode" +msgstr "Bovenliggende Mageto order" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_payment_mode +#, fuzzy +msgid "Payment Modes" +msgstr "Bovenliggende Mageto order" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_move_line_ids +#, fuzzy +msgid "Payment Move Lines" +msgstr "Magento orderregels" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference_type +msgid "Payment Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_term_id +msgid "Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_ids +msgid "Payment Tokens" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_ids +msgid "Payments" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payments_widget +msgid "Payments widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_phone +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_phone +msgid "Phone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_method +msgid "Picking Method" +msgstr "Verzamelmethode" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_id +#, fuzzy +msgid "Picking Type" +msgstr "Verzamelmethode" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_ids +msgid "Picking associated to this sale" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_notify_email +msgid "" +"Policy to receive emails for new messages pushed to your personal Inbox:\n" +"- Never: no emails are sent\n" +"- All Messages: for every notification you receive in your Inbox" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price +msgid "Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce +msgid "Price Reduce" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxexcl +msgid "Price Reduce Tax excl" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxinc +msgid "Price Reduce Tax inc" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_item_ids +msgid "Pricelist Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_item_ids +msgid "Pricelist item ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_catalog_price_tax_included +msgid "Prices include tax" +msgstr "Prijzen incl. BTW" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_id +#, fuzzy +msgid "Pricing/Primary Category" +msgstr "Relatiecategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_printed +msgid "Printed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_priority +msgid "Priority" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_priority +msgid "" +"Priority for this picking. Setting manually a value here would set it as " +"priority for all the moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_procurement_group_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_group_id +msgid "Procurement Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_procurement +msgid "Procurement Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_procurement_ids +msgid "Procurements" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_product +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_product_id +msgid "Product" +msgstr "Product" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_line_ids +msgid "Product Attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_category +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_odoo_id +msgid "Product Category" +msgstr "Productcategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_tmpl_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_tmpl_id +#, fuzzy +msgid "Product Template" +msgstr "Productcategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_type +#, fuzzy +msgid "Product Type" +msgstr "Magento productsoort" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_production +#, fuzzy +msgid "Production Location" +msgstr "Productcategorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_ids +#, fuzzy +msgid "Products" +msgstr "Product" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_delivery_type +msgid "Provider" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_purchase +#, fuzzy +msgid "Purchase Description" +msgstr "Beschrijving" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_po_id +msgid "Purchase Unit of Measure" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_qty +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom_qty +#, fuzzy +msgid "Quantity" +msgstr "Berekende hoeveelheid" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_qty_available +#, fuzzy +msgid "Quantity On Hand" +msgstr "Verkoop hoeveelheid< 0" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_incoming_qty +msgid "" +"Quantity of products that are planned to arrive.\n" +"In a context with a single Stock Location, this includes goods arriving to " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location with " +"'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_outgoing_qty +msgid "" +"Quantity of products that are planned to leave.\n" +"In a context with a single Stock Location, this includes goods leaving this " +"Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving the Stock " +"Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods leaving any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_queue_job +msgid "Queue Job" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_expense_policy +msgid "Re-Invoice Expenses" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Read Binding information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.magento_binding_backend_read_act_window +msgid "Read information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reception_count +msgid "Receipt" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "Recompute pack operation?" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/deleter.py:21 +#, python-format +msgid "Record %s deleted on Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/importer.py:189 +#, python-format +msgid "Record does no longer exist in Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:370 +#, python-format +msgid "Record exported with ID %s on Magento." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_name +msgid "Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_origin +msgid "Reference of the document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_origin +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_origin +msgid "Reference of the document that produced this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_name +#, fuzzy +msgid "Reference/Description" +msgstr "Beschrijving" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_id +#, fuzzy +msgid "Related Company" +msgstr "Bedrijf" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_ids +msgid "Related Packing Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_related_backorder_ids +msgid "Related backorders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Remaining amount due in the currency of the company." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_signed +msgid "Remaining amount due in the currency of the invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual +msgid "Remaining amount due." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/common.py:137 +#, python-format +msgid "Reopen sales order %s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_nbr_reordering_rules +msgid "Reordering Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_max_qty +msgid "Reordering max qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_min_qty +msgid "Reordering min qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_right +msgid "Right Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_right +msgid "Right parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_route_id +msgid "Route" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_route_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_ids +msgid "Routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_rule_group +msgid "Rule group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_sale +#, fuzzy +msgid "Sale Description" +msgstr "Beschrijving" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_sale_id +msgid "Sale Order" +msgstr "Verkooporder" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_odoo_id +msgid "Sale Order Line" +msgstr "Verkooporderregel" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_sale_prefix +msgid "Sale Prefix" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_list_price +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_lst_price +#, fuzzy +msgid "Sale Price" +msgstr "Verkooporder" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "Sale Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_workflow_process_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_workflow_process_id +msgid "Sale Workflow Process" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:54 +#, python-format +msgid "Sale is not linked with a Magento sales order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn +msgid "Sales Order" +msgstr "Verkooporder" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order_line +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn +msgid "Sales Order Line" +msgstr "Verkooporderregel" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_team_id +msgid "Sales Team" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_salesman_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_user_id +#, fuzzy +msgid "Salesperson" +msgstr "Verkooporder" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_min_date +msgid "Scheduled Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_min_date +msgid "" +"Scheduled time for the first part of the shipment to be processed. Setting " +"manually a value here would set it as expected date for all the stock moves." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_max_date +msgid "Scheduled time for the last part of the shipment to be processed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_id +#, fuzzy +msgid "Section" +msgstr "Beschrijving" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_categ_id +msgid "Select category for the current product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Select the default payment mode for this customer." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Select the default payment mode for this supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_line_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_sale_warn +msgid "" +"Selecting the \"Warning\" option will notify user with the message, " +"Selecting \"Blocking Message\" will throw an exception with the message and " +"block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_self +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_self +msgid "Self" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0" +msgstr "Verkoop hoeveelheid< 0" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0 and Use Customer Notification" +msgstr "Verkoop hoeveelheden < 0 en gebruik klant notificatie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "Send email notification on invoice validated/paid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_picking_done_mail +msgid "Send email notification on picking done" +msgstr "Stuur e-mail bevestiging als de uitgaande levering gereed is" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_sent +msgid "Sent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sequence +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_sequence +msgid "Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_removal_strategy_id +msgid "" +"Set a specific removal strategy that will be used regardless of the source " +"location for this product category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_partner_share +#, fuzzy +msgid "Share Partner" +msgstr "Magento relatie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_price +msgid "Shipping Cost" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:25 +#, python-format +msgid "Shipping Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_policy +msgid "Shipping Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_account_payment_mode_create_invoice_on +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"If nothing is set, the option falls back to the same option on the Magento " +"store related to the sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_create_invoice_on +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"This only takes effect if the sales order's related payment method is not " +"giving an option for this by itself. (See Payment Methods)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_type +msgid "Signup Token Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_valid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_valid +msgid "Signup Token is Valid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_url +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_url +msgid "Signup URL" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_expiration +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_expiration +msgid "Signup expiration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_token +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_token +msgid "Signup token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_small +msgid "Small-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_small +msgid "" +"Small-sized image of this contact. It is automatically resized as a 64x64px " +"image, with aspect ratio preserved. Use this field anywhere a small image is " +"required." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_sort_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_sort_order +msgid "Sort Order" +msgstr "Sorteervolgorde" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_origin +msgid "Source Document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_id +msgid "Source Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_account_analytic_id +msgid "Specific analytic account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "Specific fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_warehouse_id +msgid "Specific warehouse" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_ok +msgid "Specify if the product can be selected in a sales order line." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +" Average Price: The cost price is recomputed at each incoming " +"shipment and used for the product valuation.\n" +" Real Price: The cost price displayed is the price of the " +"last outgoing product (will be use in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +"Average Price: The cost price is recomputed at each incoming shipment and " +"used for the product valuation.\n" +"Real Price: The cost price displayed is the price of the last outgoing " +"product (will be used in case of inventory loss for example)." +msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_address_bind_ids:0 -msgid "Magento Address Bindings" -msgstr "Magento adres koppelingen" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_hs_code +msgid "Standardized code for international shipping and goods declaration" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_backend -#: field:magento.account.invoice,backend_id:0 -#: field:magento.address,backend_id:0 -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.backend:connector_magento.view_magento_backend_tree -#: field:magento.binding,backend_id:0 -#: field:magento.product.category,backend_id:0 -#: field:magento.product.product,backend_id:0 -#: field:magento.res.partner,backend_id:0 -#: field:magento.res.partner.category,backend_id:0 -#: field:magento.sale.order,backend_id:0 -#: field:magento.sale.order.line,backend_id:0 -#: field:magento.stock.picking,backend_id:0 field:magento.store,backend_id:0 -#: field:magento.storeview,backend_id:0 field:magento.website,backend_id:0 -msgid "Magento Backend" -msgstr "Magento backend" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_state_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_state_id +msgid "State" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_backend -msgid "Magento Backends" -msgstr "Magento backends" +#: code:addons/connector_magento/models/sale_order/exporter.py:51 +#, python-format +msgid "State %s is not exported." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_binding -#: model:ir.model,name:connector_magento.model_magento_res_partner_category -msgid "Magento Binding (abstract)" -msgstr "Magento koppelingen (abstract)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_state +msgid "Status" +msgstr "" #. module: connector_magento -#: view:account.invoice:connector_magento.view_invoice_magento_form -#: field:account.invoice,magento_bind_ids:0 -#: view:product.category:connector_magento.view_product_category_form -#: field:product.category,magento_bind_ids:0 -#: view:product.product:connector_magento.product_normal_form_view -#: field:product.product,magento_bind_ids:0 -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_bind_ids:0 -#: field:res.partner.category,magento_bind_ids:0 -#: field:sale.order,magento_bind_ids:0 -#: field:sale.order.line,magento_bind_ids:0 -#: view:stock.picking:connector_magento.view_stock_picking_out_magento_form -#: field:stock.picking,magento_bind_ids:0 -msgid "Magento Bindings" -msgstr "Magento koppelingen" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_stock_field_id +msgid "Stock Field" +msgstr "Voorraad veld" #. module: connector_magento -#: field:delivery.carrier,magento_code:0 -msgid "Magento Carrier Code" -msgstr "Magento vervoerdercode" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_input +msgid "Stock Input Account" +msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_child_ids:0 -msgid "Magento Child Categories" -msgstr "Magento onderliggende categorien" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_journal +msgid "Stock Journal" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Magento Configuration" -msgstr "Magento configuratie" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_lines +#, fuzzy +msgid "Stock Moves" +msgstr "Voorraad veld" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_stock_picking -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_form -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_tree -msgid "Magento Delivery Order" -msgstr "Magento uitgaande levering" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_output +msgid "Stock Output Account" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,group_id:0 -msgid "Magento Group (Category)" -msgstr "Magento groep (Categorie)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_odoo_id +msgid "Stock Picking" +msgstr "Uitgaande levering" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_account_invoice -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_form -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_tree -msgid "Magento Invoice" -msgstr "Magento factuur" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "Stock Valuation Account" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_order_id:0 -msgid "Magento Order ID" -msgstr "Magento order ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_move_ids +#, fuzzy +msgid "Stock move ids" +msgstr "Voorraad veld" #. module: connector_magento -#: field:magento.sale.order,magento_order_line_ids:0 -msgid "Magento Order Lines" -msgstr "Magento orderregels" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_quant_ids +#, fuzzy +msgid "Stock quant ids" +msgstr "Voorraad veld" #. module: connector_magento -#: field:magento.product.category,magento_parent_id:0 -msgid "Magento Parent Category" -msgstr "Magento bovenliggende categorie" +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_store_id +msgid "Store" +msgstr "Winkel" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_res_partner -#: field:magento.address,magento_partner_id:0 -#: view:magento.res.partner:connector_magento.view_magento_res_partner_form -#: view:magento.res.partner:connector_magento.view_magento_res_partner_tree -msgid "Magento Partner" -msgstr "Magento relatie" +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_store_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Stores" +msgstr "Winkels" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_product -#: view:magento.product.product:connector_magento.view_magento_product_form -#: view:magento.product.product:connector_magento.view_magento_product_tree -msgid "Magento Product" -msgstr "Magento product" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_store_id +#, fuzzy +msgid "Storeview" +msgstr "Winkelweergaven" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_category -#: view:magento.product.category:connector_magento.view_magento_product_category_form -#: view:magento.product.category:connector_magento.view_magento_product_category_tree -msgid "Magento Product Category" -msgstr "Magento product categorie" +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_storeview_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +msgid "Storeviews" +msgstr "Winkelweergaven" #. module: connector_magento -#: field:magento.product.product,product_type:0 -msgid "Magento Product Type" -msgstr "Magento productsoort" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street +msgid "Street" +msgstr "" #. module: connector_magento -#: field:magento.backend,product_binding_ids:0 -#: field:magento.website,product_binding_ids:0 -msgid "Magento Products" -msgstr "Magento producten" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street2 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street2 +msgid "Street2" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order -#: field:magento.account.invoice,magento_order_id:0 -#: field:magento.sale.order.line,magento_order_id:0 -#: field:magento.stock.picking,magento_order_id:0 -msgid "Magento Sale Order" -msgstr "Magento verkooporder" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_subtotal +msgid "Subtotal" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order_line -msgid "Magento Sale Order Line" -msgstr "Magento verkooporderregel" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Supplier Payment Mode" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_store -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.store:connector_magento.view_magento_store_tree -msgid "Magento Store" -msgstr "Magento winkel" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Synchronize Metadata" +msgstr "Synchroniseer metadata" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_store -msgid "Magento Stores" -msgstr "Magento winkels" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_vat +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_vat +msgid "TIN" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_storeview -#: field:magento.sale.order,storeview_id:0 -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.storeview:connector_magento.view_magento_storeview_tree -msgid "Magento Storeview" -msgstr "Magento winkelweergave" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_name +#, fuzzy +msgid "Tag Name" +msgstr "Naam" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview -msgid "Magento Storeviews" -msgstr "Magento winkelweergaven" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id +msgid "Tags" +msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_tracking_title:0 -msgid "Magento Tracking Title" -msgstr "Magento Tracking Title" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_tax +msgid "Tax" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,taxvat:0 -msgid "Magento VAT" -msgstr "Magento BTW" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_tax_class_id +msgid "Tax Class ID" +msgstr "BTW Class ID" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_website -#: field:magento.address,website_id:0 field:magento.res.partner,website_id:0 -#: field:magento.store,website_id:0 -#: view:magento.website:connector_magento.view_magento_website_form -#: view:magento.website:connector_magento.view_magento_website_tree -msgid "Magento Website" -msgstr "Magento website" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax Group" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_website -msgid "Magento Websites" -msgstr "Magento websites" +#: model:ir.model.fields,help:connector_magento.field_magento_address_vat +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_vat +msgid "" +"Tax Identification Number. Fill it if the company is subjected to taxes. " +"Used by the some of the legal statements." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1079 -#, python-format -msgid "Magento sales order is already in state %s" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_tax_line_ids +msgid "Tax Lines" msgstr "" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Magentoerpconnect" -msgstr "Magentoerpconnect" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_rate +msgid "Tax Rate" +msgstr "BTW tarief" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Main Configuration" -msgstr "Belangrijkste instellingen" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax groups are used with some external system like Prestashop" +msgstr "" #. module: connector_magento -#: field:magento.product.product,backorders:0 -msgid "Manage Inventory Backorders" -msgstr "Beheer voorraad backorders" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_id +msgid "Taxes" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Manage Stock" -msgstr "Beheer vororaad" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_name +msgid "" +"Technical field holding the number given to the invoice, automatically set " +"when the invoice is validated then stored to set the same number again if " +"the invoice is cancelled, set to draft and re-validated." +msgstr "" #. module: connector_magento -#: field:magento.product.product,manage_stock:0 -msgid "Manage Stock Level" -msgstr "Beheer vororaad" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_pricelist_id +msgid "" +"Technical field. Used for searching on pricelists, not stored in database." +msgstr "" #. module: connector_magento -#: field:magento.backend,name:0 field:magento.store,name:0 -#: field:magento.storeview,name:0 field:magento.website,name:0 -msgid "Name" -msgstr "Naam" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_move_ids +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_quant_ids +#, fuzzy +msgid "Technical: used to compute quantities." +msgstr "" +"Het magazijn dat wordt gebruikt om de hoeveelheid op voorraad te berekenen" #. module: connector_magento -#: field:magento.res.partner,newsletter:0 -msgid "Newsletter" -msgstr "Nieuwsbrief" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_note +msgid "Terms and conditions" +msgstr "" #. module: connector_magento -#: field:magento.storeview,no_sales_order_sync:0 -msgid "No Sales Order Synchronization" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_category_active +msgid "The active field allows you to hide the category without removing it." msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "No Sell" -msgstr "Niet verkocht" +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount +#, fuzzy +msgid "" +"The amount computed in Odoo doesn't match with the amount in Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" +"Het bedrag berekend in OpenERP komt niet overeen met het bedrag in Magento " +"in Magento.\n" +"\n" +"Oorzaak:\n" +"De BTW tarieven zijn mogelijk verschillend in OpenERP en Magento of een " +"fiscale positie heeft de uiteindelijke prijs veranderd.\n" +"\n" +"Oplossing:\n" +"Controleer de BTW tarieven en de fiscale posities en corrigeer deze indien " +"nodig.." #. module: connector_magento -#: field:magento.product.product,no_stock_sync:0 -msgid "No Stock Synchronization" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_related_project_id +msgid "The analytic account related to a sales order." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/related_action.py:55 -#, python-format +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_delay msgid "" -"No admin URL configured on the backend or no admin path is defined for this " -"record." +"The average delay in days between the confirmation of the customer order and " +"the delivery of the finished products. It's the time you promise to your " +"customers." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:83 +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:60 #, python-format -msgid "No tracking number to send." +msgid "The carrier %s does not export tracking numbers." msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,notes:0 -msgid "Notes" -msgstr "Notities" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_commercial_partner_id +msgid "" +"The commercial entity that will be used on Journal Entries for this invoice" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:407 -#: code:addons/connector_magento/unit/export_synchronizer.py:412 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_company_id +msgid "The company is automatically set from your user preferences." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/product/importer.py:296 #, python-format -msgid "Nothing to export." +msgid "" +"The configurable product is not imported in Odoo, because only the simple " +"products are used in the sales orders." msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_custom_api_path msgid "" -"Once imported,\n" -" some types of records,\n" -" like the products or categories,\n" -" need a manual review.\n" -" You will find the list\n" -" of the new records to review\n" -" in the menu 'Connectors > Checkpoint'." -msgstr "Wanneer geïmporteerd,\n hebben sommige soorten regels,\n zoals de producten of categorieën,\n een handmatige controle nodig.\n U vindt de lijst van nieuwe regels\n welke dienen te worden gecontroleerd\n in het menu 'Connectors > Controlepunten'." - -#. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Options" -msgstr "Opties" +"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a " +"custom API path, in that case, the location has to be completed with the " +"custom API path " +msgstr "" #. module: connector_magento -#: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 -msgid "Paid" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_position_id +msgid "" +"The fiscal position will determine taxes and accounts used for the partner." msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_parent_id:0 -msgid "Parent Magento Order" -msgstr "Bovenliggende Mageto order" +#: model:ir.model.fields,help:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_user_id +msgid "" +"The internal user that is in charge of communicating with this contact if " +"any." +msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Partial" -msgstr "Gedeeltelijk" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_name +msgid "The name that will be used on account move lines" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner -#: field:magento.address,openerp_id:0 field:magento.res.partner,openerp_id:0 -msgid "Partner" -msgstr "Relatie" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_product_count +msgid "" +"The number of products under this category (Does not consider the children " +"categories)" +msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,openerp_id:0 -msgid "Partner Category" -msgstr "Relatiecategorie" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_account_id +msgid "The partner account used for this invoice." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner_category -msgid "Partner Tags" +#: model:ir.model.fields,help:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "" +"The partner has at least one unreconciled debit and credit since last time " +"the invoices & payments matching was performed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reference +msgid "The partner reference of this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_tz +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_tz +msgid "" +"The partner's timezone, used to output proper date and time values inside " +"printed reports. It is important to set a value for this field. You should " +"use the same timezone that is otherwise used to pick and render date and " +"time values: your computer's timezone." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_lst_price +msgid "" +"The sale price is managed from the product template. Click on the 'Variant " +"Prices' button to set the extra attribute prices." +msgstr "" + +#. module: connector_magento +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount_tax +#, fuzzy +msgid "" +"The tax amount computed in Odoo doesn't match with the tax amount in " +"Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" +"Het BTW bedrag berekend in OpenERP komt niet overeen met het BTW bedrag in " +"Magento in Magento.\n" +"\n" +"Oorzaak:\n" +"De BTW tarieven zijn mogelijk verschillend in OpenERP en Magento of een " +"fiscale positie heeft de uiteindelijke prijs veranderd.\n" +"\n" +"Oplossing:\n" +"Controleer de BTW tarieven en de fiscale posities en corrigeer deze indien " +"nodig.." + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_volume +msgid "The volume in m3." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_weight +msgid "The weight of the contents in Kg, not including any packaging, etc." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:41 +#, python-format +msgid "The wizard must be launched from a magento backend model" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:45 +#, python-format +msgid "The wizard must be launched on a single magento backend instance" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_expense_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"expenses for the current product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_income_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"sales for the current product." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_expense_categ_id +msgid "This account will be used for invoices to value expenses." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_income_categ_id +msgid "This account will be used for invoices to value sales." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" msgstr "" #. module: connector_magento -#: field:magento.backend,password:0 -msgid "Password" -msgstr "Wachtwoord" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_delivery_carrier_id +msgid "This delivery method will be used when invoicing from picking." +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_payment_method -msgid "Payment Method" +#: model:ir.model.fields,help:connector_magento.field_magento_address_image +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image +msgid "" +"This field holds the image used as avatar for this contact, limited to " +"1024x1024px" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_stock_picking -msgid "Picking List" -msgstr "Verzamellijst" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_variant +msgid "" +"This field holds the image used as image for the product variant, limited to " +"1024x1024px." +msgstr "" #. module: connector_magento -#: field:magento.stock.picking,picking_method:0 -msgid "Picking Method" -msgstr "Verzamelmethode" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_price_extra +msgid "This is the sum of the extra price of all attributes" +msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_pricing:0 -msgid "Prices are managed in OpenERP with pricelists" -msgstr "Prijzen worden beheert in OpenERP door middel van prijslijsten" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "" +"This option should respect the same\n" +" configuration as Magento. Pay\n" +" attention to the taxes on the products,\n" +" which should surely include prices when\n" +" this option is activated." +msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_pricing:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_supplier_payment_term_id msgid "" -"Prices are set in OpenERP and exported to Magento.\n" -"\n" -"This installs the module connector_magento_pricing." -msgstr "Prijzen worden ingesteld in OpenERP en geëxporteerd naar Magento.\n\nDit installeert de module connector_magento_pricing." +"This payment term will be used instead of the default one for purchase " +"orders and vendor bills" +msgstr "" #. module: connector_magento -#: field:magento.storeview,catalog_price_tax_included:0 -msgid "Prices include tax" -msgstr "Prijzen incl. BTW" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "" +"This payment term will be used instead of the default one for sale orders " +"and customer invoices" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_product -#: field:magento.product.product,openerp_id:0 -msgid "Product" -msgstr "Product" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "" +"This pricelist will be used, instead of the default one, for sales to the " +"current partner" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_category -#: field:magento.product.category,openerp_id:0 -msgid "Product Category" -msgstr "Productcategorie" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_customer +msgid "" +"This stock location will be used, instead of the default one, as the " +"destination location for goods you send to this partner" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/delete_synchronizer.py:38 -#, python-format -msgid "Record %s deleted on Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for goods you receive from the current partner" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:199 -#, python-format -msgid "Record does no longer exist in Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_production +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by manufacturing orders." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:414 -#, python-format -msgid "Record exported with ID %s on Magento." +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_procurement +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by procurements." msgstr "" #. module: connector_magento -#: field:magento.sale.order,openerp_id:0 -msgid "Sale Order" -msgstr "Verkooporder" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_inventory +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated when you do an inventory." +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,openerp_id:0 -msgid "Sale Order Line" -msgstr "Verkooporderregel" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz +msgid "Timezone" +msgstr "" #. module: connector_magento -#: field:magento.backend,sale_prefix:0 -msgid "Sale Prefix" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz_offset +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz_offset +msgid "Timezone offset" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1075 -#, python-format -msgid "Sale is not linked with a Magento sales order" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_title +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_title +msgid "Title" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order -msgid "Sales Order" -msgstr "Verkooporder" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_to_invoice +#, fuzzy +msgid "To Invoice" +msgstr "Factuur" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order_line -msgid "Sales Order Line" -msgstr "Verkooporderregel" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_total +msgid "Total" +msgstr "" #. module: connector_magento -#: field:magento.storeview,section_id:0 -msgid "Sales Team" -msgstr "" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount +msgid "Total Amount differs from Magento" +msgstr "Totalbedrag wijkt af van Magento" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0" -msgstr "Verkoop hoeveelheid< 0" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_total_invoiced +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_total_invoiced +#, fuzzy +msgid "Total Invoiced" +msgstr "Standaard factuur" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0 and Use Customer Notification" -msgstr "Verkoop hoeveelheden < 0 en gebruik klant notificatie" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit +msgid "Total Payable" +msgstr "" #. module: connector_magento -#: field:magento.store,send_invoice_paid_mail:0 -msgid "Send email notification on invoice validated/paid" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit +msgid "Total Receivable" msgstr "" #. module: connector_magento -#: field:magento.store,send_picking_done_mail:0 -msgid "Send email notification on picking done" -msgstr "Stuur e-mail bevestiging als de uitgaande levering gereed is" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount_tax +msgid "Total Tax Amount differs from Magento" +msgstr "Totaal BTW bedrag wijkt af van Magento" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:126 -#: code:addons/connector_magento/tests/test_export_picking.py:89 -#: code:addons/connector_magento/tests/test_export_picking.py:135 -#: code:addons/connector_magento/tests/test_export_picking.py:169 -#, python-format -msgid "Shipping Created" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount +msgid "Total amount" +msgstr "Totaalbedrag" #. module: connector_magento -#: help:payment.method,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"If nothing is set, the option falls back to the same option on the Magento store related to the sales order." +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total amount in the currency of the company, negative for credit notes." msgstr "" #. module: connector_magento -#: help:magento.store,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"This only takes effect if the sales order's related payment method is not giving an option for this by itself. (See Payment Methods)" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total amount in the currency of the invoice, negative for credit notes." msgstr "" #. module: connector_magento -#: field:magento.storeview,sort_order:0 field:magento.website,sort_order:0 -msgid "Sort Order" -msgstr "Sorteervolgorde" +#: model:ir.model.fields,help:connector_magento.field_magento_address_credit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_credit +msgid "Total amount this customer owes you." +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1072 -#, python-format -msgid "State %s is not exported." -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount_tax +msgid "Total amount w. tax" +msgstr "Totaalbedrag excl. BTW" #. module: connector_magento -#: field:magento.backend,product_stock_field_id:0 -msgid "Stock Field" -msgstr "Voorraad veld" +#: model:ir.model.fields,help:connector_magento.field_magento_address_debit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_debit +msgid "Total amount you have to pay to this vendor." +msgstr "" #. module: connector_magento -#: field:magento.stock.picking,openerp_id:0 -msgid "Stock Picking" -msgstr "Uitgaande levering" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total in Company Currency" +msgstr "" #. module: connector_magento -#: field:magento.storeview,store_id:0 -msgid "Store" -msgstr "Winkel" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total in Invoice Currency" +msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_store -#: view:magento.website:connector_magento.view_magento_website_form -#: field:magento.website,store_ids:0 -msgid "Stores" -msgstr "Winkels" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_total_route_ids +#, fuzzy +msgid "Total routes" +msgstr "Totaalbedrag" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview -#: view:magento.store:connector_magento.view_magento_store_form -#: field:magento.store,storeview_ids:0 -msgid "Storeviews" -msgstr "Winkelweergaven" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_track_service +msgid "Track Service" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Synchronize Metadata" -msgstr "Synchroniseer metadata" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tracking +msgid "Tracking" +msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,tax_class_id:0 -msgid "Tax Class ID" -msgstr "BTW Class ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_tracking_ref +msgid "Tracking Reference" +msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,tax_rate:0 -msgid "Tax Rate" -msgstr "BTW tarief" +#: model:ir.model,name:connector_magento.model_stock_picking +msgid "Transfer" +msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_recompute_pack_op msgid "" -"The amount computed in OpenERP doesn't match with the amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." -msgstr "Het bedrag berekend in OpenERP komt niet overeen met het bedrag in Magento in Magento.\n\nOorzaak:\nDe BTW tarieven zijn mogelijk verschillend in OpenERP en Magento of een fiscale positie heeft de uiteindelijke prijs veranderd.\n\nOplossing:\nControleer de BTW tarieven en de fiscale posities en corrigeer deze indien nodig.." +"True if reserved quants changed, which mean we might need to recompute the " +"package operations" +msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:80 -#, python-format -msgid "The carrier %s does not export tracking numbers." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_type +msgid "Type" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/product.py:558 -#, python-format -msgid "" -"The configurable product is not imported in OpenERP, because only the simple" -" products are used in the sales orders." +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_code +msgid "Type of Operation" msgstr "" #. module: connector_magento -#: help:magento.backend,use_custom_api_path:0 -msgid "" -"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a" -" custom API path, in that case, the location has to be completed with the " -"custom API path " +#: code:addons/connector_magento/models/magento_website/importer.py:22 +#, python-format +msgid "Undefined" msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount_tax -msgid "" -"The tax amount computed in OpenERP doesn't match with the tax amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." -msgstr "Het BTW bedrag berekend in OpenERP komt niet overeen met het BTW bedrag in Magento in Magento.\n\nOorzaak:\nDe BTW tarieven zijn mogelijk verschillend in OpenERP en Magento of een fiscale positie heeft de uiteindelijke prijs veranderd.\n\nOplossing:\nControleer de BTW tarieven en de fiscale posities en corrigeer deze indien nodig.." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_unit +msgid "Unit Price" +msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_export_partner:0 -msgid "This installs the module connector_magento_export_partner." -msgstr "Dit installeert de module connector_magento_export_partner." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of Measure" +msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "" -"This option should respect the same\n" -" configuration as Magento. Pay\n" -" attention to the taxes on the products,\n" -" which should surely include prices when\n" -" this option is activated." +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of measurement for Weight" msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount -msgid "Total Amount differs from Magento" -msgstr "Totalbedrag wijkt af van Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread +msgid "Unread Messages" +msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount_tax -msgid "Total Tax Amount differs from Magento" -msgstr "Totaal BTW bedrag wijkt af van Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Unread Messages Counter" +msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount:0 -msgid "Total amount" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_untaxed +#, fuzzy +msgid "Untaxed Amount" msgstr "Totaalbedrag" #. module: connector_magento -#: field:magento.sale.order,total_amount_tax:0 -msgid "Total amount w. tax" -msgstr "Totaalbedrag excl. BTW" - -#. module: connector_magento -#: code:addons/connector_magento/magento_model.py:575 -#, python-format -msgid "Undefined" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed_signed +msgid "Untaxed Amount in Company Currency" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Update" msgstr "Bijwerken" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Update all the products stock quantities" msgstr "Bijwerken voorraad van alle producten" #. module: connector_magento -#: field:magento.address,updated_at:0 -#: field:magento.product.product,updated_at:0 -#: field:magento.res.partner,updated_at:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_updated_at msgid "Updated At (on Magento)" msgstr "Bijgewerkt op (in Magento)" #. module: connector_magento -#: help:magento.backend,location:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_location msgid "Url to magento application" msgstr "" @@ -1199,12 +4286,12 @@ msgid "Use Default Config" msgstr "Gebruik standaard configuratie" #. module: connector_magento -#: field:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_auth_basic msgid "Use HTTP Auth Basic" msgstr "" #. module: connector_magento -#: help:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_auth_basic msgid "" "Use a Basic Access Authentication for the API. The Magento server could be " "configured to restrict access using a HTTP authentication based on a " @@ -1212,71 +4299,295 @@ msgid "" msgstr "" #. module: connector_magento -#: field:magento.backend,username:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_type +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_type +msgid "" +"Used to select automatically the right address according to the context in " +"sales and purchases documents." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_username msgid "Username" msgstr "Gebruikersnaam" #. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_ids +#, fuzzy +msgid "Users" +msgstr "Gebruikersnaam" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_currency_id +msgid "Utility field to express amount currency" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 #: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 msgid "Validate" msgstr "" #. module: connector_magento -#: field:magento.backend,version:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_valuation +msgid "Valuation" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_variant +msgid "Variant Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price_extra +msgid "Variant Price Extra" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_supplier +#, fuzzy +msgid "Vendor Location" +msgstr "Locatie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "Vendor Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference +msgid "Vendor Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_supplier_taxes_id +msgid "Vendor Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_seller_ids +msgid "Vendors" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_version msgid "Version" msgstr "Versie" #. module: connector_magento -#: field:magento.backend,warehouse_id:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_volume +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_volume +msgid "Volume" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_warehouse_id msgid "Warehouse" msgstr "Magazijn" #. module: connector_magento -#: help:magento.backend,warehouse_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_warehouse_id msgid "Warehouse used to compute the stock quantities." -msgstr "Het magazijn dat wordt gebruikt om de hoeveelheid op voorraad te berekenen" +msgstr "" +"Het magazijn dat wordt gebruikt om de hoeveelheid op voorraad te berekenen" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warranty +msgid "Warranty" +msgstr "" #. module: connector_magento -#: help:magento.backend,password:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_password msgid "Webservice password" msgstr "" #. module: connector_magento -#: help:magento.backend,username:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_username msgid "Webservice user" msgstr "" #. module: connector_magento -#: field:magento.backend,website_ids:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_website_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website msgid "Website" msgstr "Website" #. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_website +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_website +msgid "Website of Partner or Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_website_ids #: model:ir.ui.menu,name:connector_magento.menu_magento_website -#: view:magento.backend:connector_magento.view_magento_backend_form -#: field:magento.product.product,website_ids:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Websites" msgstr "Websites" #. module: connector_magento -#: help:magento.storeview,import_orders_from_date:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_weight +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight +msgid "Weight" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_shipping_weight +#, fuzzy +msgid "Weight for Shipping" +msgstr "Standaard verzending" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. This is the default " +"value for all products in this category. It can also directly be set on each " +"product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_input +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. When not set on the " +"product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. This is the " +"default value for all products in this category. It can also directly be set " +"on each product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_output +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. When not set on " +"the product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_journal +msgid "" +"When doing real-time inventory valuation, this is the Accounting Journal in " +"which entries will be automatically posted when stock moves are processed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "" +"When real-time inventory valuation is enabled on a product, this account " +"will hold the current value of the products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_zip +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_zip +msgid "Zip" +msgstr "" + +#. module: connector_magento +#: selection:magento.binding.backend.read,state:0 +msgid "choose" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_import_orders_from_date msgid "" "do not consider non-imported sale orders before this date. Leave empty to " "import all sale orders" -msgstr "Houdt geen rekening met de niet geïmporteerde verkooporders voor deze datum. Laat leeg om alle verkooporders importeren" +msgstr "" +"Houdt geen rekening met de niet geïmporteerde verkooporders voor deze datum. " +"Laat leeg om alle verkooporders importeren" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com" msgstr "Bijv. http://my.magento.com" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com/admin" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: selection:magento.binding.backend.read,state:0 +#, fuzzy +msgid "get" +msgstr "Magento" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "mag-" msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding_backend_read +msgid "magento.binding.backend.read" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_config_specializer +msgid "magento.config.specializer" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner_category +#, fuzzy +msgid "magento.res.partner.category" +msgstr "Magento bovenliggende categorie" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_warehouse_id +#, fuzzy +msgid "warehouse" +msgstr "Magazijn" + +#~ msgid "Export Partners to Magento (experimental)" +#~ msgstr "Exporteer relaties naar Magento" + +#~ msgid "Extensions" +#~ msgstr "Extensies" + +#~ msgid "Last synchronization date" +#~ msgstr "Laatste synchronisatie datum" + +#~ msgid "Magentoerpconnect" +#~ msgstr "Magentoerpconnect" + +#~ msgid "Picking List" +#~ msgstr "Verzamellijst" + +#~ msgid "Prices are managed in OpenERP with pricelists" +#~ msgstr "Prijzen worden beheert in OpenERP door middel van prijslijsten" + +#~ msgid "" +#~ "Prices are set in OpenERP and exported to Magento.\n" +#~ "\n" +#~ "This installs the module connector_magento_pricing." +#~ msgstr "" +#~ "Prijzen worden ingesteld in OpenERP en geëxporteerd naar Magento.\n" +#~ "\n" +#~ "Dit installeert de module connector_magento_pricing." + +#~ msgid "This installs the module connector_magento_export_partner." +#~ msgstr "Dit installeert de module connector_magento_export_partner." diff --git a/connector_magento/i18n/pt_BR.po b/connector_magento/i18n/pt_BR.po index 6a6293274..e8143c0dc 100644 --- a/connector_magento/i18n/pt_BR.po +++ b/connector_magento/i18n/pt_BR.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * connector_magento -# +# # Translators: # Gustavo Lepri , 2015 msgid "" @@ -11,20 +11,74 @@ msgstr "" "POT-Creation-Date: 2015-09-09 15:28+0000\n" "PO-Revision-Date: 2015-09-17 01:20+0000\n" "Last-Translator: Gustavo Lepri \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-connector-magento-8-0/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-" +"connector-magento-8-0/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: connector_magento -#: help:magento.sale.order,magento_order_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_state +msgid "" +" * Draft: not confirmed yet and will not be scheduled until confirmed\n" +" * Waiting Another Operation: waiting for another move to proceed before it " +"becomes automatically available (e.g. in Make-To-Order flows)\n" +" * Waiting Availability: still waiting for the availability of products\n" +" * Partially Available: some products are available and reserved\n" +" * Ready to Transfer: products reserved, simply waiting for confirmation.\n" +" * Transferred: has been processed, can't be modified or cancelled anymore\n" +" * Cancelled: has been cancelled, can't be confirmed anymore" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_state +msgid "" +" * The 'Draft' status is used when a user is encoding a new and unconfirmed " +"Invoice.\n" +" * The 'Pro-forma' status is used when the invoice does not have an invoice " +"number.\n" +" * The 'Open' status is used when user creates invoice, an invoice number is " +"generated. It stays in the open status till the user pays the invoice.\n" +" * The 'Paid' status is set automatically when the invoice is paid. Its " +"related journal entries may or may not be reconciled.\n" +" * The 'Cancelled' status is used when user cancel invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_count +msgid "# Product Variants" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_product_count +msgid "# Products" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sales_count +msgid "# Sales" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_count +msgid "# of Invoices" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_count +msgid "# of Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_magento_order_id msgid "'order_id' field in Magento" msgstr "Campo 'order_id' no Magento" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form msgid "(recompute)" msgstr "" @@ -44,1239 +98,4342 @@ msgstr "Um backend com o mesmo prefixo de venda já existe" #: sql_constraint:magento.product.product:0 #: sql_constraint:magento.res.partner:0 #: sql_constraint:magento.res.partner.category:0 -#: sql_constraint:magento.sale.order:0 -#: sql_constraint:magento.sale.order.line:0 +#: sql_constraint:magento.sale.order:0 sql_constraint:magento.sale.order.line:0 #: sql_constraint:magento.stock.picking:0 sql_constraint:magento.store:0 #: sql_constraint:magento.storeview:0 sql_constraint:magento.website:0 msgid "A binding already exists with the same Magento ID." msgstr "Já existe uma ligação com o mesmo Magento ID." +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_type +msgid "" +"A category of the view type is a virtual category that can be used as the " +"parent of another category to create a hierarchical structure." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_sale +msgid "" +"A description of the Product that you want to communicate to your customers. " +"This description will be copied to every Sale Order, Delivery Order and " +"Customer Invoice/Refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_purchase +msgid "" +"A description of the Product that you want to communicate to your vendors. " +"This description will be copied to every Purchase Order, Receipt and Vendor " +"Bill/Refund." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "" +"A parent sales order has been canceled on the backend and needs to be " +"canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_id +msgid "A parent sales order is a sales order replaced by this one." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "A parent sales order needs cancel" +msgstr "" + #. module: connector_magento #: sql_constraint:magento.address:0 msgid "A partner address can only have one binding by backend." msgstr "Um endereço de parceiro pode ter apenas uma ligação por backend." #. module: connector_magento -#: help:magento.backend,sale_prefix:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description +msgid "" +"A precise description of the Product, used only for internal information " +"purposes." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_sale_prefix msgid "" "A prefix put before the name of imported sales orders.\n" -"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, will be named 'mag-100000692' in OpenERP." +"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, " +"will be named 'mag-100000692' in Odoo." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_type +msgid "" +"A stockable product is a product for which you manage stock. The \"Inventory" +"\" app has to be installed.\n" +"A consumable product, on the other hand, is a product for which stock is not " +"managed.\n" +"A service is a non-material product you provide.\n" +"A digital content is a non-material product you sell online. The files " +"attached to the products are the one that are sold on the e-commerce such as " +"e-books, music, pictures,... The \"Digital Product\" module has to be " +"installed." msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "API" msgstr "API" #. module: connector_magento -#: field:magento.address,is_magento_order_address:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_account_id +msgid "Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "Account Payable" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "Account Receivable" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date +msgid "Accounting Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction +msgid "Action Needed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_bank_account_required +msgid "" +"Activate this option if this payment method requires you to know the bank " +"account number of your customer or supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_active +msgid "Active" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_comment +msgid "Additional Information" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_type +msgid "Address Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_magento_order_address msgid "Address from a Magento Order" msgstr "" #. module: connector_magento -#: field:magento.backend,admin_location:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_admin_location msgid "Admin Location" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Advanced Configuration" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:173 +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_all_qty_delivered +msgid "All quantities delivered" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "Allow moving packs" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:69 #, python-format msgid "Already exported" msgstr "Já exportado" #. module: connector_magento -#: code:addons/connector_magento/sale.py:611 +#: code:addons/connector_magento/models/sale_order/importer.py:368 #, python-format msgid "Already imported" msgstr "Já importado" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:208 +#: code:addons/connector_magento/components/importer.py:198 #, python-format msgid "Already up-to-date." msgstr "Já atualizado." #. module: connector_magento -#: help:magento.res.partner,consider_as_company:0 -msgid "" -"An account imported with a 'company' in the billing address is considered as a company.\n" -" The partner takes the name of the company and is not merged with the billing address." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual +msgid "Amount Due" msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_backend -msgid "Backends" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Amount Due in Company Currency" msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_password:0 -msgid "Basic Auth. Password" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_signed +msgid "Amount Due in Invoice Currency" msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_username:0 -msgid "Basic Auth. Username" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_consider_as_company +msgid "" +"An account imported with a 'company' in the billing address is considered as " +"a company.\n" +" The partner takes the name of the company and is not merged with the " +"billing address." msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_password:0 -msgid "Basic access authentication web server side password" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_related_project_id +msgid "Analytic Account" msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_username:0 -msgid "Basic access authentication web server side username" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_analytic_tag_ids +msgid "Analytic Tags" msgstr "" #. module: connector_magento -#: field:res.partner,birthday:0 -msgid "Birthday" -msgstr "Aniversário" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_account_analytic_id +msgid "Analytic account" +msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "" -"By clicking on the buttons,\n" -" you will initiate the synchronizations\n" -" with Magento.\n" -" Note that the import or exports\n" -" won't be done directly,\n" -" they will create 'Jobs'\n" -" executed as soon as possible." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_value_ids +msgid "Attributes" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:180 -#, python-format -msgid "" -"Canceled: the delivery order does not contain lines from the original sale " -"order." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_workflow_process_id +msgid "Automatic Workflow" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_delivery_carrier -msgid "Carrier" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backorder_id +msgid "Back Order of" msgstr "" #. module: connector_magento -#: help:magento.storeview,no_sales_order_sync:0 -msgid "" -"Check if the storeview is active in Magento but its sales orders should not " -"be imported." +#: model:ir.ui.menu,name:connector_magento.menu_magento_backend +msgid "Backends" msgstr "" #. module: connector_magento -#: help:magento.product.product,no_stock_sync:0 -msgid "Check this to exclude the product from stock synchronizations." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_account_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_account_count +msgid "Bank" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_bank_id +msgid "Bank Account" msgstr "" #. module: connector_magento -#: help:magento.backend,product_stock_field_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_bank_id msgid "" -"Choose the field of the product which will be used for stock inventory updates.\n" -"If empty, Quantity Available is used." +"Bank Account Number to which the invoice will be paid. A Company bank " +"account if this is a Customer Invoice or Vendor Refund, otherwise a Partner " +"bank account number." msgstr "" #. module: connector_magento -#: field:magento.storeview,code:0 field:magento.website,code:0 -msgid "Code" -msgstr "Código" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_bank_account_required +msgid "Bank Account Required" +msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,company:0 -msgid "Company" -msgstr "Empresa" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_ids +msgid "Banks" +msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Complete" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_barcode +msgid "Barcode" msgstr "" #. module: connector_magento -#: field:magento.product.product,magento_qty:0 -msgid "Computed Quantity" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_list_price +msgid "" +"Base price to compute the customer price. Sometimes called the catalog price." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_connector_config_settings -msgid "Connector Configuration" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic Auth. Password" msgstr "" #. module: connector_magento -#: field:magento.res.partner,consider_as_company:0 -msgid "Considered as company" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic Auth. Username" msgstr "" #. module: connector_magento -#: view:payment.method:connector_magento.payment_method_view_form -msgid "Create invoice on" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic access authentication web server side password" msgstr "" #. module: connector_magento -#: field:magento.store,create_invoice_on:0 -#: field:payment.method,create_invoice_on:0 -msgid "Create invoice on action" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic access authentication web server side username" msgstr "" #. module: connector_magento -#: field:magento.address,created_at:0 -#: field:magento.product.product,created_at:0 -#: field:magento.res.partner,created_at:0 -msgid "Created At (on Magento)" -msgstr "Criado em (no Magento)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image +msgid "Big-sized image" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,create_uid:0 -#: field:magento.address,create_uid:0 field:magento.backend,create_uid:0 -#: field:magento.product.category,create_uid:0 -#: field:magento.product.product,create_uid:0 -#: field:magento.res.partner,create_uid:0 -#: field:magento.res.partner.category,create_uid:0 -#: field:magento.sale.order,create_uid:0 -#: field:magento.sale.order.line,create_uid:0 -#: field:magento.stock.picking,create_uid:0 field:magento.store,create_uid:0 -#: field:magento.storeview,create_uid:0 field:magento.website,create_uid:0 -msgid "Created by" -msgstr "Criado por" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_birthday +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_users_birthday +msgid "Birthday" +msgstr "Aniversário" #. module: connector_magento -#: field:magento.account.invoice,create_date:0 -#: field:magento.address,create_date:0 field:magento.backend,create_date:0 -#: field:magento.product.category,create_date:0 -#: field:magento.product.product,create_date:0 -#: field:magento.res.partner,create_date:0 -#: field:magento.res.partner.category,create_date:0 -#: field:magento.sale.order,create_date:0 -#: field:magento.sale.order.line,create_date:0 -#: field:magento.stock.picking,create_date:0 field:magento.store,create_date:0 -#: field:magento.storeview,create_date:0 field:magento.website,create_date:0 -msgid "Created on" -msgstr "Criado em" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_bounce +msgid "Bounce" +msgstr "" #. module: connector_magento -#: field:magento.backend,use_custom_api_path:0 -msgid "Custom Api Path" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_bulk +msgid "Bulk Weight" msgstr "" #. module: connector_magento -#: field:magento.address,is_default_billing:0 -msgid "Default Invoice" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "" +"By clicking on the buttons,\n" +" you will initiate the synchronizations\n" +" with Magento.\n" +" Note that the import or exports\n" +" won't be done directly,\n" +" they will create 'Jobs'\n" +" executed as soon as possible." msgstr "" #. module: connector_magento -#: field:magento.backend,default_lang_id:0 -msgid "Default Language" -msgstr "Idioma padrão" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered_updateable +msgid "Can Edit Delivered" +msgstr "" #. module: connector_magento -#: field:magento.backend,default_category_id:0 -msgid "Default Product Category" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_purchase_ok +msgid "Can be Purchased" msgstr "" #. module: connector_magento -#: field:magento.address,is_default_shipping:0 -msgid "Default Shipping" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_rental +msgid "Can be Rent" msgstr "" #. module: connector_magento -#: field:magento.product.category,description:0 -msgid "Description" -msgstr "Descrição" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_ok +msgid "Can be Sold" +msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Do Not Manage Stock" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Cancel" msgstr "" #. module: connector_magento -#: help:magento.store,send_invoice_paid_mail:0 -msgid "" -"Does the invoice export/creation should send an email notification on " -"Magento side?" +#: code:addons/connector_magento/models/sale_order/common.py:114 +#, python-format +msgid "Cancel sales order %s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_canceled_in_backend +msgid "Canceled in backend" msgstr "" #. module: connector_magento -#: help:magento.store,send_picking_done_mail:0 +#: code:addons/connector_magento/models/stock_picking/exporter.py:76 +#, python-format msgid "" -"Does the picking export/creation should send an email notification on " -"Magento side?" +"Canceled: the delivery order does not contain lines from the original sale " +"order." msgstr "" #. module: connector_magento -#: field:magento.res.partner,emailid:0 -msgid "E-mail address" -msgstr "Endereço de e-mail" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_cancellation_resolved +msgid "Cancellation from the backend resolved" +msgstr "" #. module: connector_magento -#: field:magento.storeview,enabled:0 -msgid "Enabled" -msgstr "Habilitado" +#: model:ir.model,name:connector_magento.model_delivery_carrier +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_id +msgid "Carrier" +msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_export_partner:0 -msgid "Export Partners to Magento (experimental)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_from_categ_ids +msgid "Category Routes" msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_export_tracking:0 -msgid "Export tracking numbers" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_type +msgid "Category Type" msgstr "" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Extensions" -msgstr "Extensões" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_channel_ids +msgid "Channels" +msgstr "" #. module: connector_magento -#: field:magento.res.partner,guest_customer:0 -msgid "Guest Customer" +#: model:ir.model.fields,help:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_is_company +msgid "Check if the contact is a company, otherwise it is a person" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "HTTP Authentication" +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "" +"Check if the storeview is active in Magento but its sales orders should not " +"be imported." msgstr "" #. module: connector_magento -#: field:magento.account.invoice,id:0 field:magento.address,id:0 -#: field:magento.backend,id:0 field:magento.binding,id:0 -#: field:magento.product.category,id:0 field:magento.product.product,id:0 -#: field:magento.res.partner,id:0 field:magento.res.partner.category,id:0 -#: field:magento.sale.order,id:0 field:magento.sale.order.line,id:0 -#: field:magento.stock.picking,id:0 field:magento.store,id:0 -#: field:magento.storeview,id:0 field:magento.website,id:0 -msgid "ID" -msgstr "ID" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Check the existance of quants linked to this picking" +msgstr "" #. module: connector_magento -#: field:magento.account.invoice,magento_id:0 -#: field:magento.address,magento_id:0 field:magento.binding,magento_id:0 -#: field:magento.product.category,magento_id:0 -#: field:magento.product.product,magento_id:0 -#: field:magento.res.partner,magento_id:0 -#: field:magento.res.partner.category,magento_id:0 -#: field:magento.sale.order,magento_id:0 -#: field:magento.sale.order.line,magento_id:0 -#: field:magento.stock.picking,magento_id:0 field:magento.store,magento_id:0 -#: field:magento.storeview,magento_id:0 field:magento.website,magento_id:0 -msgid "ID on Magento" -msgstr "ID no Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Check the existence of pack operation on the picking" +msgstr "" #. module: connector_magento -#: help:magento.backend,default_category_id:0 -msgid "" -"If a default category is selected, products imported without a category will" -" be linked to it." +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer +msgid "Check this box if this contact is a customer." msgstr "" #. module: connector_magento -#: help:magento.backend,default_lang_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier msgid "" -"If a default language is selected, the records will be imported in the translation of this language.\n" -"Note that a similar configuration exists for each storeview." +"Check this box if this contact is a vendor. If it's not checked, purchase " +"people will not see it when encoding a purchase order." msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders" +#: model:ir.model.fields,help:connector_magento.field_magento_address_employee +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_employee +msgid "Check this box if this contact is an Employee." msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders since" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_no_stock_sync +msgid "Check this to exclude the product from stock synchronizations." msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import all customer groups" +#: code:addons/connector_magento/models/magento_backend/common.py:234 +#, python-format +msgid "" +"Check your configuration, we can't get the data. Here is the error:\n" +"%s" msgstr "" #. module: connector_magento -#: field:magento.backend,import_categories_from_date:0 -msgid "Import categories from date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_child_id +msgid "Child Categories" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import in background" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_child_ids +msgid "Child Tags" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import partners from all websites" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_product_stock_field_id +msgid "" +"Choose the field of the product which will be used for stock inventory " +"updates.\n" +"If empty, Quantity Available is used." msgstr "" #. module: connector_magento -#: field:magento.website,import_partners_from_date:0 -msgid "Import partners from date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_city +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_city +msgid "City" msgstr "" #. module: connector_magento -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import partners since" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Close" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products categories since" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_code +msgid "Code" +msgstr "Código" #. module: connector_magento -#: field:magento.backend,import_products_from_date:0 -msgid "Import products from date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_color +msgid "Color Index" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products since" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_partner_id +msgid "Commercial Entity" msgstr "" #. module: connector_magento -#: field:magento.storeview,import_orders_from_date:0 -msgid "Import sale orders from date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref_company_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref_company_ids +msgid "Companies that refers to partner" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import sales orders from all store views" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_company_id +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_res_users_company +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Company" +msgstr "Empresa" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Imports" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_currency_id +#, fuzzy +msgid "Company Currency" +msgstr "Empresa" #. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Informations" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_name +#, fuzzy +msgid "Company Name" +msgstr "Empresa" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form -msgid "Inventory Options" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_company_name +msgid "Company Name Entity" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_account_invoice -#: field:magento.account.invoice,openerp_id:0 -msgid "Invoice" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_type +#, fuzzy +msgid "Company Type" +msgstr "Empresa" #. module: connector_magento -#: code:addons/connector_magento/invoice.py:122 -#: code:addons/connector_magento/tests/test_export_invoice.py:225 -#, python-format -msgid "Invoice Created" +#: selection:magento.stock.picking,picking_method:0 +msgid "Complete" msgstr "" #. module: connector_magento -#: field:magento.storeview,lang_id:0 -msgid "Language" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contact_address +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contact_address +#, fuzzy +msgid "Complete Address" +msgstr "Endereço de e-mail" #. module: connector_magento -#: field:magento.account.invoice,write_uid:0 field:magento.address,write_uid:0 -#: field:magento.backend,write_uid:0 -#: field:magento.product.category,write_uid:0 -#: field:magento.product.product,write_uid:0 -#: field:magento.res.partner,write_uid:0 -#: field:magento.res.partner.category,write_uid:0 -#: field:magento.sale.order,write_uid:0 -#: field:magento.sale.order.line,write_uid:0 -#: field:magento.stock.picking,write_uid:0 field:magento.store,write_uid:0 -#: field:magento.storeview,write_uid:0 field:magento.website,write_uid:0 -msgid "Last Updated by" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date_done +msgid "Completion Date of Transfer" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,write_date:0 -#: field:magento.address,write_date:0 field:magento.backend,write_date:0 -#: field:magento.product.category,write_date:0 -#: field:magento.product.product,write_date:0 -#: field:magento.res.partner,write_date:0 -#: field:magento.res.partner.category,write_date:0 -#: field:magento.sale.order,write_date:0 -#: field:magento.sale.order.line,write_date:0 -#: field:magento.stock.picking,write_date:0 field:magento.store,write_date:0 -#: field:magento.storeview,write_date:0 field:magento.website,write_date:0 -msgid "Last Updated on" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_qty +msgid "Computed Quantity" msgstr "" #. module: connector_magento -#: help:magento.product.product,magento_qty:0 -msgid "Last computed quantity to send on Magento." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_confirmation_date +msgid "Confirmation Date" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,sync_date:0 field:magento.address,sync_date:0 -#: field:magento.binding,sync_date:0 -#: field:magento.product.category,sync_date:0 -#: field:magento.product.product,sync_date:0 -#: field:magento.res.partner,sync_date:0 -#: field:magento.res.partner.category,sync_date:0 -#: field:magento.sale.order,sync_date:0 -#: field:magento.sale.order.line,sync_date:0 -#: field:magento.stock.picking,sync_date:0 field:magento.store,sync_date:0 -#: field:magento.storeview,sync_date:0 field:magento.website,sync_date:0 -msgid "Last synchronization date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_consider_as_company +msgid "Considered as company" msgstr "" #. module: connector_magento -#: field:magento.backend,location:0 -msgid "Location" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_child_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_child_ids +msgid "Contacts" msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_root -#: view:payment.method:connector_magento.payment_method_view_form -#: view:res.partner.category:connector_magento.view_partner_category_form -msgid "Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contracts_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contracts_count +msgid "Contracts" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_address -#: view:magento.address:connector_magento.view_magento_address_form -#: view:magento.address:connector_magento.view_magento_address_tree -msgid "Magento Address" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_standard_price +msgid "Cost" msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_address_bind_ids:0 -msgid "Magento Address Bindings" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_cost_method +msgid "Cost method" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_backend -#: field:magento.account.invoice,backend_id:0 -#: field:magento.address,backend_id:0 -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.backend:connector_magento.view_magento_backend_tree -#: field:magento.binding,backend_id:0 -#: field:magento.product.category,backend_id:0 -#: field:magento.product.product,backend_id:0 -#: field:magento.res.partner,backend_id:0 -#: field:magento.res.partner.category,backend_id:0 -#: field:magento.sale.order,backend_id:0 -#: field:magento.sale.order.line,backend_id:0 -#: field:magento.stock.picking,backend_id:0 field:magento.store,backend_id:0 -#: field:magento.storeview,backend_id:0 field:magento.website,backend_id:0 -msgid "Magento Backend" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_standard_price +msgid "" +"Cost of the product template used for standard stock valuation in accounting " +"and used as a base price on purchase orders. Expressed in the default unit " +"of measure of the product." msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_backend -msgid "Magento Backends" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_cost_method +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_cost_method +msgid "Costing Method" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_binding -#: model:ir.model,name:connector_magento.model_magento_res_partner_category -msgid "Magento Binding (abstract)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_count +msgid "Count Payment Token" msgstr "" #. module: connector_magento -#: view:account.invoice:connector_magento.view_invoice_magento_form -#: field:account.invoice,magento_bind_ids:0 -#: view:product.category:connector_magento.view_product_category_form -#: field:product.category,magento_bind_ids:0 -#: view:product.product:connector_magento.product_normal_form_view -#: field:product.product,magento_bind_ids:0 -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_bind_ids:0 -#: field:res.partner.category,magento_bind_ids:0 -#: field:sale.order,magento_bind_ids:0 -#: field:sale.order.line,magento_bind_ids:0 -#: view:stock.picking:connector_magento.view_stock_picking_out_magento_form -#: field:stock.picking,magento_bind_ids:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_bounce +msgid "Counter of the number of bounced emails for this contact" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_country_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_country_id +msgid "Country" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +msgid "Create invoice on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_payment_mode_create_invoice_on +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_invoice_on +msgid "Create invoice on action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_created_at +msgid "Created At (on Magento)" +msgstr "Criado em (no Magento)" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_date +msgid "Created on" +msgstr "Criado em" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date +#, fuzzy +msgid "Creation Date" +msgstr "Criado em" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date +msgid "Creation Date, usually the time of the order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit_limit +msgid "Credit Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_currency_id +msgid "Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_qty_available +msgid "" +"Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"stored in the Stock Location of the Warehouse of this Shop, or any of its " +"children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_custom_api_path +msgid "Custom Api Path" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_id +msgid "Customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_delay +msgid "Customer Lead Time" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_customer +msgid "Customer Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Customer Payment Mode" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "Customer Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_partner_ref +msgid "Customer Ref" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_client_order_ref +msgid "Customer Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_taxes_id +msgid "Customer Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_date +msgid "Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date_done +msgid "Date of Transfer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_last_post +msgid "Date of the last message posted on the record." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_confirmation_date +msgid "Date on which the sale order is confirmed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_billing +msgid "Default Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_lang_id +msgid "Default Language" +msgstr "Idioma padrão" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_owner_id +#, fuzzy +msgid "Default Owner" +msgstr "Idioma padrão" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_category_id +msgid "Default Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_shipping +msgid "Default Shipping" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_id +msgid "Default Unit of Measure used for all stock operation." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_po_id +msgid "" +"Default Unit of Measure used for purchase orders. It must be in the same " +"category than the default unit of measure." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_trust +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_trust +msgid "Degree of trust you have in this debtor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered +msgid "Delivered" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_delivery_count +msgid "Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_shipping_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery Address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_customer_lead +msgid "Delivery Lead Time" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_carrier_id +msgid "Delivery Method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_count +msgid "Delivery Orders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_type +msgid "Delivery Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_shipping_id +msgid "Delivery address for current invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_route_ids +msgid "" +"Depending on the modules installed, this will allow you to define the route " +"of the product: whether it will be bought, manufactured, MTO/MTS,..." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_name +msgid "Description" +msgstr "Descrição" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_picking +#, fuzzy +msgid "Description on Picking" +msgstr "Descrição" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_dest_id +msgid "Destination Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_discount +msgid "Discount (%)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_display_name +msgid "Display Name" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Do Not Manage Stock" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "" +"Does the invoice export/creation should send an email notification on " +"Magento side?" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_picking_done_mail +msgid "" +"Does the picking export/creation should send an email notification on " +"Magento side?" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_due +msgid "Due Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_emailid +msgid "E-mail address" +msgstr "Endereço de e-mail" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_partner_share +msgid "" +"Either customer (no user), either shared user. Indicated the current partner " +"is a customer without access or with a limited access created for sharing " +"data." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email +msgid "Email" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_notify_email +msgid "Email Messages and Notifications" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_employee +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_employee +msgid "Employee" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_enabled +msgid "Enabled" +msgstr "Habilitado" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_price +msgid "Estimated Delivery Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_exception_ids +#, fuzzy +msgid "Exceptions" +msgstr "Extensões" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_expense_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_expense_id +msgid "Expense Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_validity_date +msgid "Expiration Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_export_tracking +msgid "Export tracking numbers" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_ids +msgid "Extra categories" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_fax +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_fax +msgid "Fax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_data +msgid "File" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_name +msgid "File Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_carrier_id +msgid "Fill this field if you plan to invoice the shipping based on picking." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_firstname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_firstname +msgid "First name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_fiscal_position_id +msgid "Fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_follower_ids +msgid "Followers" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_removal_strategy_id +msgid "Force Removal Strategy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_virtual_available +msgid "Forecast Quantity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_email_formatted +msgid "Format email address \"Name \"" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email_formatted +msgid "Formatted Email" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Get" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_packaging_ids +msgid "" +"Gives the different ways to package the same product. This has no impact on " +"the picking order and is mainly used if you use the EDI module." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sequence +msgid "Gives the sequence order when displaying a product list" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_guest_customer +msgid "Guest Customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_hs_code +#, fuzzy +msgid "HS Code" +msgstr "Código" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "HTTP Authentication" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_has_checkpoint +msgid "Has Checkpoint" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Has Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_has_scrap_move +msgid "Has Scrap Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_need_cancel +msgid "Has been canceled on the backend, need to be canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_has_outstanding +msgid "Has outstanding" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Has quants already reserved" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "Has unreconciled entries" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Here is the file with information read drom the backend:" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id_5804 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_id +msgid "ID" +msgstr "ID" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_external_id +msgid "ID on Magento" +msgstr "ID no Magento" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_im_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_im_status +msgid "IM Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_category_id +msgid "" +"If a default category is selected, products imported without a category will " +"be linked to it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_lang_id +msgid "" +"If a default language is selected, the records will be imported in the " +"translation of this language.\n" +"Note that a similar configuration exists for each storeview." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "" +"If checked, this shows the packs to be moved as a whole in the Operations " +"tab all the time, even if there was no entire pack reserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_opt_out +msgid "" +"If opt-out is checked, this contact has refused to receive emails for mass " +"mailing and marketing campaign. Filter 'Available for Mass Mailing' allows " +"users to filter the partners when performing mass mailing." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'. The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_team_id +msgid "" +"If set, sale team used notably for sales and assignations related to this " +"partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "" +"If specified, this fiscal position will be used to fill the field fiscal " +"position on the sale order created by the connector.The value can also be " +"specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_warehouse_id +msgid "" +"If specified, this warehouse will be used to load fill the field warehouse " +"(and company) on the sale order created by the connector.The value can also " +"be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_lang +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_lang +msgid "" +"If the selected language is loaded in the system, all documents related to " +"this contact will be printed in this language. If not, it will be English." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_website_is_multi_company +msgid "" +"If this flag is set, it is possible to choose warehouse at each level. When " +"import partner, ignore company_id if this flag is set." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_backorder_id +msgid "" +"If this shipment was split, then this field links to the shipment which " +"contains the already processed part." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_active +msgid "" +"If unchecked, it will allow you to hide the product without removing it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_payment_term_id +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. If you keep the payment term and the due " +"date empty, it means direct payment. The payment term may compute several " +"due dates, for example 50% now, 50% in one month." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_due +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. The payment term may compute several due " +"dates, for example 50% now and 50% in one month, but if you want to force a " +"due date, make sure that the payment term is not set on the invoice. If you " +"keep the payment term and the due date empty, it means direct payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_ignore_exception +msgid "Ignore Exceptions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image +msgid "Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image +msgid "" +"Image of the product variant (Big-sized image of product template if false). " +"It is automatically resized as a 1024x1024px image, with aspect ratio " +"preserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_medium +msgid "" +"Image of the product variant (Medium-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_small +msgid "" +"Image of the product variant (Small-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders since" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import all customer groups" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_categories_from_date +msgid "Import categories from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import in background" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import partners from all websites" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_import_partners_from_date +msgid "Import partners from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import partners since" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products categories since" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_products_from_date +msgid "Import products from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products since" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_import_orders_from_date +msgid "Import sale orders from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import sales orders from all store views" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Imports" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_income_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_income_id +msgid "Income Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_incoming_qty +msgid "Incoming" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_incoterms_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_incoterm +msgid "Incoterms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_incoterms_id +msgid "" +"Incoterms are series of sales terms. They are used to divide transaction " +"costs and responsibilities between buyer and seller and reflect state-of-the-" +"art transportation practices." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Informations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_default_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref +msgid "Internal Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_barcode +msgid "International Article Number used for product identification." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_incoterm +msgid "" +"International Commercial Terms are a series of predefined commercial terms " +"used in international transactions." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_inventory +msgid "Inventory Location" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +msgid "Inventory Options" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_valuation +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_valuation +msgid "Inventory Valuation" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_invoice +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn +msgid "Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice Address" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/account_invoice/exporter.py:26 +#, python-format +msgid "Invoice Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_invoice +msgid "Invoice Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_invoice_line_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_lines +msgid "Invoice Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_shipping_on_delivery +msgid "Invoice Shipping on Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_status +msgid "Invoice Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_refund_invoice_id +msgid "Invoice for which this invoice is the refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_invoiced +msgid "Invoiced" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_ids +msgid "Invoices" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_invoice_policy +msgid "Invoicing Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_is_multi_company +msgid "Is Backend Multi-Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_is_company +#, fuzzy +msgid "Is a Company" +msgstr "Empresa" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer +msgid "Is a Customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_is_delivery +msgid "Is a Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier +msgid "Is a Vendor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reconciled +msgid "" +"It indicates that the invoice has been paid and the journal entry of the " +"invoice has been reconciled with one or several journal entries of payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_sent +msgid "It indicates that the invoice has been sent." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_move_type +msgid "It specifies goods to be deliver partially or all at once" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_function +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_function +msgid "Job Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_journal_id +msgid "Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_id +msgid "Journal Entry" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_name +msgid "Journal Entry Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_journal_item_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_journal_item_count +msgid "Journal Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_invoice +msgid "Keep empty to use the current date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date +msgid "Keep empty to use the invoice date." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_lang_id +msgid "Language" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_last_post +msgid "Last Message Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_address___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_store___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_website___last_update +msgid "Last Modified on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_date +msgid "Last Updated on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_magento_qty +msgid "Last computed quantity to send on Magento." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lastname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lastname +msgid "Last name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "" +"Last time the invoices & payments matching was performed for this partner. " +"It is set either if there's not at least an unreconciled debit and an " +"unreconciled credit or if you click the \"Done\" button." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "Latest Invoices & Payments Matching Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_launch_pack_operations +msgid "Launch Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_sequence +msgid "Layout Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_left +msgid "Left Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_left +msgid "Left parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_id +msgid "Link to the automatically generated Journal Items." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_location +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_location_id +msgid "Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_packaging_ids +msgid "Logistical Units" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.menu,name:connector_magento.menu_magento_root +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +#: model:ir.ui.view,arch_db:connector_magento.view_magento_delivery_carrier_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_category_form +msgid "Magento" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_address +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_tree +msgid "Magento Address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_address_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Magento Address Bindings" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_backend +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_backend_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_tree +msgid "Magento Backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_backend +msgid "Magento Backends" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_carrier_code +msgid "Magento Base Carrier Code" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding +msgid "Magento Binding (abstract)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_stock_picking_magento_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.product_normal_form_view +#: model:ir.ui.view,arch_db:connector_magento.view_invoice_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_sale_order_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_stock_picking_out_magento_form msgid "Magento Bindings" msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_code:0 -msgid "Magento Carrier Code" +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_code +msgid "Magento Carrier Code" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_child_ids +msgid "Magento Child Categories" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Magento Configuration" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_stock_picking +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_tree +msgid "Magento Delivery Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_group_id +msgid "Magento Group (Category)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_id +#, fuzzy +msgid "Magento Id" +msgstr "ID no Magento" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_account_invoice +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_tree +msgid "Magento Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_id +msgid "Magento Order ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_line_ids +msgid "Magento Order Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_parent_id +msgid "Magento Parent Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_partner_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_tree +msgid "Magento Partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_product +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_tree +msgid "Magento Product" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_category +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_tree +msgid "Magento Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_type +msgid "Magento Product Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_binding_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_product_binding_ids +msgid "Magento Products" +msgstr "" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_rewards +#: model:product.template,name:connector_magento.product_product_rewards_product_template +msgid "Magento Rewards" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_order_id +msgid "Magento Sale Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order_line +msgid "Magento Sale Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_tree +msgid "Magento Sales Orders" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_tree +msgid "Magento Store" +msgstr "" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_store_credit +#: model:product.template,name:connector_magento.product_product_store_credit_product_template +msgid "Magento Store Credit" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_store +msgid "Magento Stores" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_storeview +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_storeview_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_tree +msgid "Magento Storeview" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview +msgid "Magento Storeviews" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_tracking_title +msgid "Magento Tracking Title" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_taxvat +msgid "Magento VAT" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_website_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_tree +msgid "Magento Website" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_website +msgid "Magento Websites" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_backend_id +msgid "Magento backend id" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_binding_model +msgid "Magento binding model" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:58 +#, python-format +msgid "Magento sales order is already in state %s" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Main Configuration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_main_exception_id +msgid "Main Exception" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backorders +msgid "Manage Inventory Backorders" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Manage Stock" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_manage_stock +msgid "Manage Stock Level" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_track_service +msgid "" +"Manually set quantities on order: Invoice based on the manually entered " +"quantity, without creating an analytic account.\n" +"Timesheets on contract: Invoice based on the tracked hours on the related " +"timesheet.\n" +"Create a task and track hours: Create a task on the sale order validation " +"and track the work hours." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_validity_date +msgid "" +"Manually set the expiration date of your quotation (offer), or it will set " +"the date automatically based on the template if online quotation is " +"installed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_max_date +msgid "Max. Expected Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_medium +msgid "Medium-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_medium +msgid "" +"Medium-sized image of this contact. It is automatically resized as a " +"128x128px image, with aspect ratio preserved. Use this field in form views " +"or some kanban views." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn_msg +msgid "Message for Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn_msg +msgid "Message for Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn_msg +msgid "Message for Sales Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn_msg +msgid "Message for Stock Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_ids +msgid "Messages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_orderpoint_ids +msgid "Minimum Stock Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_mobile +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_mobile +msgid "Mobile" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_name +msgid "Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_need_cancel +msgid "Need to be canceled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_newsletter +msgid "Newsletter" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "No Sales Order Synchronization" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "No Sell" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_no_stock_sync +msgid "No Stock Synchronization" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/queue_job/common.py:27 +#, python-format +msgid "" +"No admin URL configured on the backend or no admin path is defined for this " +"record." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:63 +#, python-format +msgid "No tracking number to send." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_product_ids +msgid "Non pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_notes +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_note +msgid "Notes" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:363 +#: code:addons/connector_magento/components/exporter.py:368 +#, python-format +msgid "Nothing to export." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_number +msgid "Number" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_number_of_packages +msgid "Number of Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_line_customer_lead +msgid "" +"Number of days between the order confirmation and the shipping of the " +"products to the customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "" +"Once imported,\n" +" some types of records,\n" +" like the products or categories,\n" +" need a manual review.\n" +" You will find the list\n" +" of the new records to review\n" +" in the menu 'Connectors > Checkpoint'." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_opt_out +msgid "Opt-Out" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Options" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_date_order +msgid "Order Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_order_line +msgid "Order Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_name +msgid "Order Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_state +msgid "Order Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_invoice_policy +msgid "" +"Ordered Quantity: Invoice based on the quantity the customer ordered.\n" +"Delivered Quantity: Invoiced based on the quantity the vendor delivered " +"(time or deliveries)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_outgoing_qty +msgid "Outgoing" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_outstanding_credits_debits_widget +msgid "Outstanding credits debits widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_owner_id +msgid "Owner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_pack_ids +msgid "Pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_package_ids +msgid "Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_packaging +msgid "Packaging" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 +#: selection:magento.store,create_invoice_on:0 +msgid "Paid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reconciled +msgid "Paid/Reconciled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_id +msgid "Parent Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_parent_id +msgid "Parent Magento Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_id +msgid "Parent Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_name +msgid "Parent name" +msgstr "" + +#. module: connector_magento +#: selection:magento.stock.picking,picking_method:0 +msgid "Partial" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_partner_id +msgid "Partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_odoo_id +msgid "Partner Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner_category +msgid "Partner Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_partner_ids +msgid "Partners" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_password +msgid "Password" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit_limit +msgid "Payable Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_mode_id +msgid "Payment Mode" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_payment_mode +msgid "Payment Modes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_move_line_ids +msgid "Payment Move Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference_type +msgid "Payment Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_term_id +msgid "Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_ids +msgid "Payment Tokens" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_ids +msgid "Payments" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payments_widget +msgid "Payments widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_phone +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_phone +msgid "Phone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_method +msgid "Picking Method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_id +msgid "Picking Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_ids +msgid "Picking associated to this sale" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_notify_email +msgid "" +"Policy to receive emails for new messages pushed to your personal Inbox:\n" +"- Never: no emails are sent\n" +"- All Messages: for every notification you receive in your Inbox" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price +msgid "Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce +msgid "Price Reduce" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxexcl +msgid "Price Reduce Tax excl" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxinc +msgid "Price Reduce Tax inc" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_item_ids +msgid "Pricelist Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_item_ids +msgid "Pricelist item ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_catalog_price_tax_included +msgid "Prices include tax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_id +msgid "Pricing/Primary Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_printed +msgid "Printed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_priority +msgid "Priority" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_priority +msgid "" +"Priority for this picking. Setting manually a value here would set it as " +"priority for all the moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_procurement_group_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_group_id +msgid "Procurement Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_procurement +msgid "Procurement Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_procurement_ids +msgid "Procurements" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_product +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_product_id +msgid "Product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_line_ids +msgid "Product Attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_category +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_odoo_id +msgid "Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_tmpl_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_tmpl_id +msgid "Product Template" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_type +msgid "Product Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_production +msgid "Production Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_ids +msgid "Products" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_delivery_type +msgid "Provider" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_purchase +#, fuzzy +msgid "Purchase Description" +msgstr "Descrição" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_po_id +msgid "Purchase Unit of Measure" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_qty +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom_qty +msgid "Quantity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_qty_available +msgid "Quantity On Hand" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_incoming_qty +msgid "" +"Quantity of products that are planned to arrive.\n" +"In a context with a single Stock Location, this includes goods arriving to " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location with " +"'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_outgoing_qty +msgid "" +"Quantity of products that are planned to leave.\n" +"In a context with a single Stock Location, this includes goods leaving this " +"Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving the Stock " +"Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods leaving any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_queue_job +msgid "Queue Job" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_expense_policy +msgid "Re-Invoice Expenses" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Read Binding information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.magento_binding_backend_read_act_window +msgid "Read information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reception_count +msgid "Receipt" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "Recompute pack operation?" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/deleter.py:21 +#, python-format +msgid "Record %s deleted on Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/importer.py:189 +#, python-format +msgid "Record does no longer exist in Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:370 +#, python-format +msgid "Record exported with ID %s on Magento." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_name +msgid "Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_origin +msgid "Reference of the document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_origin +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_origin +msgid "Reference of the document that produced this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_name +#, fuzzy +msgid "Reference/Description" +msgstr "Descrição" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_id +#, fuzzy +msgid "Related Company" +msgstr "Criado em" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_ids +msgid "Related Packing Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_related_backorder_ids +msgid "Related backorders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Remaining amount due in the currency of the company." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_signed +msgid "Remaining amount due in the currency of the invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual +msgid "Remaining amount due." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/common.py:137 +#, python-format +msgid "Reopen sales order %s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_nbr_reordering_rules +msgid "Reordering Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_max_qty +msgid "Reordering max qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_min_qty +msgid "Reordering min qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_right +msgid "Right Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_right +msgid "Right parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_route_id +msgid "Route" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_route_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_ids +msgid "Routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_rule_group +msgid "Rule group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_sale +#, fuzzy +msgid "Sale Description" +msgstr "Descrição" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_sale_id +msgid "Sale Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_odoo_id +msgid "Sale Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_sale_prefix +msgid "Sale Prefix" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_list_price +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_lst_price +msgid "Sale Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "Sale Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_workflow_process_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_workflow_process_id +msgid "Sale Workflow Process" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:54 +#, python-format +msgid "Sale is not linked with a Magento sales order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn +msgid "Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order_line +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn +msgid "Sales Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_team_id +msgid "Sales Team" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_salesman_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_user_id +msgid "Salesperson" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_min_date +msgid "Scheduled Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_min_date +msgid "" +"Scheduled time for the first part of the shipment to be processed. Setting " +"manually a value here would set it as expected date for all the stock moves." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_max_date +msgid "Scheduled time for the last part of the shipment to be processed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_id +#, fuzzy +msgid "Section" +msgstr "Descrição" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_categ_id +msgid "Select category for the current product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Select the default payment mode for this customer." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Select the default payment mode for this supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_line_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_sale_warn +msgid "" +"Selecting the \"Warning\" option will notify user with the message, " +"Selecting \"Blocking Message\" will throw an exception with the message and " +"block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_self +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_self +msgid "Self" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0 and Use Customer Notification" msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_child_ids:0 -msgid "Magento Child Categories" +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "Send email notification on invoice validated/paid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_picking_done_mail +msgid "Send email notification on picking done" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_sent +msgid "Sent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sequence +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_sequence +msgid "Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_removal_strategy_id +msgid "" +"Set a specific removal strategy that will be used regardless of the source " +"location for this product category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_partner_share +msgid "Share Partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_price +msgid "Shipping Cost" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:25 +#, python-format +msgid "Shipping Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_policy +msgid "Shipping Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_account_payment_mode_create_invoice_on +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"If nothing is set, the option falls back to the same option on the Magento " +"store related to the sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_create_invoice_on +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"This only takes effect if the sales order's related payment method is not " +"giving an option for this by itself. (See Payment Methods)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_type +msgid "Signup Token Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_valid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_valid +msgid "Signup Token is Valid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_url +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_url +msgid "Signup URL" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_expiration +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_expiration +msgid "Signup expiration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_token +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_token +msgid "Signup token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_small +msgid "Small-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_small +msgid "" +"Small-sized image of this contact. It is automatically resized as a 64x64px " +"image, with aspect ratio preserved. Use this field anywhere a small image is " +"required." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_sort_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_sort_order +msgid "Sort Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_origin +msgid "Source Document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_id +msgid "Source Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_account_analytic_id +msgid "Specific analytic account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "Specific fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_warehouse_id +msgid "Specific warehouse" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_ok +msgid "Specify if the product can be selected in a sales order line." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +" Average Price: The cost price is recomputed at each incoming " +"shipment and used for the product valuation.\n" +" Real Price: The cost price displayed is the price of the " +"last outgoing product (will be use in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +"Average Price: The cost price is recomputed at each incoming shipment and " +"used for the product valuation.\n" +"Real Price: The cost price displayed is the price of the last outgoing " +"product (will be used in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_hs_code +msgid "Standardized code for international shipping and goods declaration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_state_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_state_id +msgid "State" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:51 +#, python-format +msgid "State %s is not exported." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_state +msgid "Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_stock_field_id +msgid "Stock Field" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_input +msgid "Stock Input Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_journal +msgid "Stock Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_lines +msgid "Stock Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_output +msgid "Stock Output Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_odoo_id +msgid "Stock Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "Stock Valuation Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_move_ids +msgid "Stock move ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_quant_ids +msgid "Stock quant ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_store_id +msgid "Store" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_store_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Stores" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_store_id +msgid "Storeview" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_storeview_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +msgid "Storeviews" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street +msgid "Street" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street2 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street2 +msgid "Street2" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_subtotal +msgid "Subtotal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Supplier Payment Mode" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Synchronize Metadata" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_vat +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_vat +msgid "TIN" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_name +msgid "Tag Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id +msgid "Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_tax +msgid "Tax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_tax_class_id +msgid "Tax Class ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_vat +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_vat +msgid "" +"Tax Identification Number. Fill it if the company is subjected to taxes. " +"Used by the some of the legal statements." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_tax_line_ids +msgid "Tax Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_rate +msgid "Tax Rate" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax groups are used with some external system like Prestashop" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_id +msgid "Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_name +msgid "" +"Technical field holding the number given to the invoice, automatically set " +"when the invoice is validated then stored to set the same number again if " +"the invoice is cancelled, set to draft and re-validated." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_pricelist_id +msgid "" +"Technical field. Used for searching on pricelists, not stored in database." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_move_ids +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_quant_ids +msgid "Technical: used to compute quantities." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_note +msgid "Terms and conditions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_category_active +msgid "The active field allows you to hide the category without removing it." +msgstr "" + +#. module: connector_magento +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount +msgid "" +"The amount computed in Odoo doesn't match with the amount in Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_related_project_id +msgid "The analytic account related to a sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_delay +msgid "" +"The average delay in days between the confirmation of the customer order and " +"the delivery of the finished products. It's the time you promise to your " +"customers." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:60 +#, python-format +msgid "The carrier %s does not export tracking numbers." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_commercial_partner_id +msgid "" +"The commercial entity that will be used on Journal Entries for this invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_company_id +msgid "The company is automatically set from your user preferences." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/product/importer.py:296 +#, python-format +msgid "" +"The configurable product is not imported in Odoo, because only the simple " +"products are used in the sales orders." msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Magento Configuration" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_custom_api_path +msgid "" +"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a " +"custom API path, in that case, the location has to be completed with the " +"custom API path " msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_stock_picking -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_form -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_tree -msgid "Magento Delivery Order" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_position_id +msgid "" +"The fiscal position will determine taxes and accounts used for the partner." msgstr "" #. module: connector_magento -#: field:magento.res.partner,group_id:0 -msgid "Magento Group (Category)" +#: model:ir.model.fields,help:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_user_id +msgid "" +"The internal user that is in charge of communicating with this contact if " +"any." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_account_invoice -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_form -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_tree -msgid "Magento Invoice" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_name +msgid "The name that will be used on account move lines" msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_order_id:0 -msgid "Magento Order ID" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_product_count +msgid "" +"The number of products under this category (Does not consider the children " +"categories)" msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_order_line_ids:0 -msgid "Magento Order Lines" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_account_id +msgid "The partner account used for this invoice." msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_parent_id:0 -msgid "Magento Parent Category" +#: model:ir.model.fields,help:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "" +"The partner has at least one unreconciled debit and credit since last time " +"the invoices & payments matching was performed." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_res_partner -#: field:magento.address,magento_partner_id:0 -#: view:magento.res.partner:connector_magento.view_magento_res_partner_form -#: view:magento.res.partner:connector_magento.view_magento_res_partner_tree -msgid "Magento Partner" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reference +msgid "The partner reference of this invoice." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_product -#: view:magento.product.product:connector_magento.view_magento_product_form -#: view:magento.product.product:connector_magento.view_magento_product_tree -msgid "Magento Product" +#: model:ir.model.fields,help:connector_magento.field_magento_address_tz +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_tz +msgid "" +"The partner's timezone, used to output proper date and time values inside " +"printed reports. It is important to set a value for this field. You should " +"use the same timezone that is otherwise used to pick and render date and " +"time values: your computer's timezone." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_category -#: view:magento.product.category:connector_magento.view_magento_product_category_form -#: view:magento.product.category:connector_magento.view_magento_product_category_tree -msgid "Magento Product Category" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_lst_price +msgid "" +"The sale price is managed from the product template. Click on the 'Variant " +"Prices' button to set the extra attribute prices." msgstr "" #. module: connector_magento -#: field:magento.product.product,product_type:0 -msgid "Magento Product Type" +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount_tax +msgid "" +"The tax amount computed in Odoo doesn't match with the tax amount in " +"Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." msgstr "" #. module: connector_magento -#: field:magento.backend,product_binding_ids:0 -#: field:magento.website,product_binding_ids:0 -msgid "Magento Products" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_volume +msgid "The volume in m3." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order -#: field:magento.account.invoice,magento_order_id:0 -#: field:magento.sale.order.line,magento_order_id:0 -#: field:magento.stock.picking,magento_order_id:0 -msgid "Magento Sale Order" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_weight +msgid "The weight of the contents in Kg, not including any packaging, etc." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order_line -msgid "Magento Sale Order Line" +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:41 +#, python-format +msgid "The wizard must be launched from a magento backend model" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_store -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.store:connector_magento.view_magento_store_tree -msgid "Magento Store" +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:45 +#, python-format +msgid "The wizard must be launched on a single magento backend instance" msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_store -msgid "Magento Stores" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_expense_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"expenses for the current product." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_storeview -#: field:magento.sale.order,storeview_id:0 -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.storeview:connector_magento.view_magento_storeview_tree -msgid "Magento Storeview" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_income_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"sales for the current product." msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview -msgid "Magento Storeviews" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_expense_categ_id +msgid "This account will be used for invoices to value expenses." msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_tracking_title:0 -msgid "Magento Tracking Title" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_income_categ_id +msgid "This account will be used for invoices to value sales." msgstr "" #. module: connector_magento -#: field:magento.res.partner,taxvat:0 -msgid "Magento VAT" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_website -#: field:magento.address,website_id:0 field:magento.res.partner,website_id:0 -#: field:magento.store,website_id:0 -#: view:magento.website:connector_magento.view_magento_website_form -#: view:magento.website:connector_magento.view_magento_website_tree -msgid "Magento Website" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_website -msgid "Magento Websites" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_delivery_carrier_id +msgid "This delivery method will be used when invoicing from picking." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1079 -#, python-format -msgid "Magento sales order is already in state %s" +#: model:ir.model.fields,help:connector_magento.field_magento_address_image +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image +msgid "" +"This field holds the image used as avatar for this contact, limited to " +"1024x1024px" msgstr "" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Magentoerpconnect" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_variant +msgid "" +"This field holds the image used as image for the product variant, limited to " +"1024x1024px." msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Main Configuration" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_price_extra +msgid "This is the sum of the extra price of all attributes" msgstr "" #. module: connector_magento -#: field:magento.product.product,backorders:0 -msgid "Manage Inventory Backorders" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "" +"This option should respect the same\n" +" configuration as Magento. Pay\n" +" attention to the taxes on the products,\n" +" which should surely include prices when\n" +" this option is activated." msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Manage Stock" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "" +"This payment term will be used instead of the default one for purchase " +"orders and vendor bills" msgstr "" #. module: connector_magento -#: field:magento.product.product,manage_stock:0 -msgid "Manage Stock Level" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "" +"This payment term will be used instead of the default one for sale orders " +"and customer invoices" msgstr "" #. module: connector_magento -#: field:magento.backend,name:0 field:magento.store,name:0 -#: field:magento.storeview,name:0 field:magento.website,name:0 -msgid "Name" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "" +"This pricelist will be used, instead of the default one, for sales to the " +"current partner" msgstr "" #. module: connector_magento -#: field:magento.res.partner,newsletter:0 -msgid "Newsletter" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_customer +msgid "" +"This stock location will be used, instead of the default one, as the " +"destination location for goods you send to this partner" msgstr "" #. module: connector_magento -#: field:magento.storeview,no_sales_order_sync:0 -msgid "No Sales Order Synchronization" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for goods you receive from the current partner" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "No Sell" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_production +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by manufacturing orders." msgstr "" #. module: connector_magento -#: field:magento.product.product,no_stock_sync:0 -msgid "No Stock Synchronization" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_procurement +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by procurements." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/related_action.py:55 -#, python-format +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_inventory msgid "" -"No admin URL configured on the backend or no admin path is defined for this " -"record." +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated when you do an inventory." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:83 -#, python-format -msgid "No tracking number to send." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz +msgid "Timezone" msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,notes:0 -msgid "Notes" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz_offset +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz_offset +msgid "Timezone offset" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:407 -#: code:addons/connector_magento/unit/export_synchronizer.py:412 -#, python-format -msgid "Nothing to export." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_title +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_title +msgid "Title" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "" -"Once imported,\n" -" some types of records,\n" -" like the products or categories,\n" -" need a manual review.\n" -" You will find the list\n" -" of the new records to review\n" -" in the menu 'Connectors > Checkpoint'." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_to_invoice +msgid "To Invoice" msgstr "" #. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Options" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_total +msgid "Total" msgstr "" #. module: connector_magento -#: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 -msgid "Paid" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount +msgid "Total Amount differs from Magento" msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_parent_id:0 -msgid "Parent Magento Order" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_total_invoiced +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_total_invoiced +msgid "Total Invoiced" msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Partial" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit +msgid "Total Payable" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner -#: field:magento.address,openerp_id:0 field:magento.res.partner,openerp_id:0 -msgid "Partner" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit +msgid "Total Receivable" msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,openerp_id:0 -msgid "Partner Category" +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount_tax +msgid "Total Tax Amount differs from Magento" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner_category -msgid "Partner Tags" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount +msgid "Total amount" msgstr "" #. module: connector_magento -#: field:magento.backend,password:0 -msgid "Password" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total amount in the currency of the company, negative for credit notes." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_payment_method -msgid "Payment Method" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total amount in the currency of the invoice, negative for credit notes." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_stock_picking -msgid "Picking List" +#: model:ir.model.fields,help:connector_magento.field_magento_address_credit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_credit +msgid "Total amount this customer owes you." msgstr "" #. module: connector_magento -#: field:magento.stock.picking,picking_method:0 -msgid "Picking Method" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount_tax +msgid "Total amount w. tax" msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_pricing:0 -msgid "Prices are managed in OpenERP with pricelists" +#: model:ir.model.fields,help:connector_magento.field_magento_address_debit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_debit +msgid "Total amount you have to pay to this vendor." msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_pricing:0 -msgid "" -"Prices are set in OpenERP and exported to Magento.\n" -"\n" -"This installs the module connector_magento_pricing." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total in Company Currency" msgstr "" #. module: connector_magento -#: field:magento.storeview,catalog_price_tax_included:0 -msgid "Prices include tax" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total in Invoice Currency" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_product -#: field:magento.product.product,openerp_id:0 -msgid "Product" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_total_route_ids +msgid "Total routes" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_category -#: field:magento.product.category,openerp_id:0 -msgid "Product Category" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_track_service +msgid "Track Service" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/delete_synchronizer.py:38 -#, python-format -msgid "Record %s deleted on Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tracking +msgid "Tracking" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:199 -#, python-format -msgid "Record does no longer exist in Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_tracking_ref +msgid "Tracking Reference" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:414 -#, python-format -msgid "Record exported with ID %s on Magento." +#: model:ir.model,name:connector_magento.model_stock_picking +msgid "Transfer" msgstr "" #. module: connector_magento -#: field:magento.sale.order,openerp_id:0 -msgid "Sale Order" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "" +"True if reserved quants changed, which mean we might need to recompute the " +"package operations" msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,openerp_id:0 -msgid "Sale Order Line" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_type +msgid "Type" msgstr "" #. module: connector_magento -#: field:magento.backend,sale_prefix:0 -msgid "Sale Prefix" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_code +msgid "Type of Operation" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1075 +#: code:addons/connector_magento/models/magento_website/importer.py:22 #, python-format -msgid "Sale is not linked with a Magento sales order" +msgid "Undefined" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order -msgid "Sales Order" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_unit +msgid "Unit Price" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order_line -msgid "Sales Order Line" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of Measure" msgstr "" #. module: connector_magento -#: field:magento.storeview,section_id:0 -msgid "Sales Team" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of measurement for Weight" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread +msgid "Unread Messages" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0 and Use Customer Notification" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Unread Messages Counter" msgstr "" #. module: connector_magento -#: field:magento.store,send_invoice_paid_mail:0 -msgid "Send email notification on invoice validated/paid" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_untaxed +msgid "Untaxed Amount" msgstr "" #. module: connector_magento -#: field:magento.store,send_picking_done_mail:0 -msgid "Send email notification on picking done" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed_signed +msgid "Untaxed Amount in Company Currency" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:126 -#: code:addons/connector_magento/tests/test_export_picking.py:89 -#: code:addons/connector_magento/tests/test_export_picking.py:135 -#: code:addons/connector_magento/tests/test_export_picking.py:169 -#, python-format -msgid "Shipping Created" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Update" msgstr "" #. module: connector_magento -#: help:payment.method,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"If nothing is set, the option falls back to the same option on the Magento store related to the sales order." +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Update all the products stock quantities" msgstr "" #. module: connector_magento -#: help:magento.store,create_invoice_on:0 -msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"This only takes effect if the sales order's related payment method is not giving an option for this by itself. (See Payment Methods)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_updated_at +msgid "Updated At (on Magento)" msgstr "" #. module: connector_magento -#: field:magento.storeview,sort_order:0 field:magento.website,sort_order:0 -msgid "Sort Order" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_location +msgid "Url to magento application" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1072 -#, python-format -msgid "State %s is not exported." +#: selection:magento.product.product,backorders:0 +#: selection:magento.product.product,manage_stock:0 +msgid "Use Default Config" msgstr "" #. module: connector_magento -#: field:magento.backend,product_stock_field_id:0 -msgid "Stock Field" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_auth_basic +msgid "Use HTTP Auth Basic" msgstr "" #. module: connector_magento -#: field:magento.stock.picking,openerp_id:0 -msgid "Stock Picking" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_auth_basic +msgid "" +"Use a Basic Access Authentication for the API. The Magento server could be " +"configured to restrict access using a HTTP authentication based on a " +"username and a password." msgstr "" #. module: connector_magento -#: field:magento.storeview,store_id:0 -msgid "Store" +#: model:ir.model.fields,help:connector_magento.field_magento_address_type +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_type +msgid "" +"Used to select automatically the right address according to the context in " +"sales and purchases documents." msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_store -#: view:magento.website:connector_magento.view_magento_website_form -#: field:magento.website,store_ids:0 -msgid "Stores" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_username +msgid "Username" +msgstr "Usuário" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview -#: view:magento.store:connector_magento.view_magento_store_form -#: field:magento.store,storeview_ids:0 -msgid "Storeviews" -msgstr "" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_ids +#, fuzzy +msgid "Users" +msgstr "Usuário" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Synchronize Metadata" +#: model:ir.model.fields,help:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_currency_id +msgid "Utility field to express amount currency" msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,tax_class_id:0 -msgid "Tax Class ID" +#: selection:account.payment.mode,create_invoice_on:0 +#: selection:magento.store,create_invoice_on:0 +msgid "Validate" msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,tax_rate:0 -msgid "Tax Rate" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_valuation +msgid "Valuation" msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount -msgid "" -"The amount computed in OpenERP doesn't match with the amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_variant +msgid "Variant Image" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:80 -#, python-format -msgid "The carrier %s does not export tracking numbers." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price_extra +msgid "Variant Price Extra" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/product.py:558 -#, python-format -msgid "" -"The configurable product is not imported in OpenERP, because only the simple" -" products are used in the sales orders." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "Vendor Location" msgstr "" #. module: connector_magento -#: help:magento.backend,use_custom_api_path:0 -msgid "" -"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a" -" custom API path, in that case, the location has to be completed with the " -"custom API path " +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "Vendor Payment Terms" msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount_tax -msgid "" -"The tax amount computed in OpenERP doesn't match with the tax amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference +msgid "Vendor Reference" msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_export_partner:0 -msgid "This installs the module connector_magento_export_partner." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_supplier_taxes_id +msgid "Vendor Taxes" msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "" -"This option should respect the same\n" -" configuration as Magento. Pay\n" -" attention to the taxes on the products,\n" -" which should surely include prices when\n" -" this option is activated." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_seller_ids +msgid "Vendors" msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount -msgid "Total Amount differs from Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_version +msgid "Version" msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount_tax -msgid "Total Tax Amount differs from Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_volume +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_volume +msgid "Volume" msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount:0 -msgid "Total amount" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_warehouse_id +msgid "Warehouse" msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount_tax:0 -msgid "Total amount w. tax" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_warehouse_id +msgid "Warehouse used to compute the stock quantities." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/magento_model.py:575 -#, python-format -msgid "Undefined" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warranty +msgid "Warranty" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Update" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_password +msgid "Webservice password" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Update all the products stock quantities" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_username +msgid "Webservice user" msgstr "" #. module: connector_magento -#: field:magento.address,updated_at:0 -#: field:magento.product.product,updated_at:0 -#: field:magento.res.partner,updated_at:0 -msgid "Updated At (on Magento)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_website_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website +msgid "Website" msgstr "" #. module: connector_magento -#: help:magento.backend,location:0 -msgid "Url to magento application" +#: model:ir.model.fields,help:connector_magento.field_magento_address_website +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_website +msgid "Website of Partner or Company" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -#: selection:magento.product.product,manage_stock:0 -msgid "Use Default Config" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_website_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_website +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Websites" msgstr "" #. module: connector_magento -#: field:magento.backend,use_auth_basic:0 -msgid "Use HTTP Auth Basic" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_weight +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight +msgid "Weight" msgstr "" #. module: connector_magento -#: help:magento.backend,use_auth_basic:0 -msgid "" -"Use a Basic Access Authentication for the API. The Magento server could be " -"configured to restrict access using a HTTP authentication based on a " -"username and a password." +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_shipping_weight +msgid "Weight for Shipping" msgstr "" #. module: connector_magento -#: field:magento.backend,username:0 -msgid "Username" -msgstr "Usuário" - -#. module: connector_magento -#: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 -msgid "Validate" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. This is the default " +"value for all products in this category. It can also directly be set on each " +"product" msgstr "" #. module: connector_magento -#: field:magento.backend,version:0 -msgid "Version" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_input +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. When not set on the " +"product, the one from the product category is used." msgstr "" #. module: connector_magento -#: field:magento.backend,warehouse_id:0 -msgid "Warehouse" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. This is the " +"default value for all products in this category. It can also directly be set " +"on each product" msgstr "" #. module: connector_magento -#: help:magento.backend,warehouse_id:0 -msgid "Warehouse used to compute the stock quantities." +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_output +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. When not set on " +"the product, the one from the product category is used." msgstr "" #. module: connector_magento -#: help:magento.backend,password:0 -msgid "Webservice password" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_journal +msgid "" +"When doing real-time inventory valuation, this is the Accounting Journal in " +"which entries will be automatically posted when stock moves are processed." msgstr "" #. module: connector_magento -#: help:magento.backend,username:0 -msgid "Webservice user" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "" +"When real-time inventory valuation is enabled on a product, this account " +"will hold the current value of the products." msgstr "" #. module: connector_magento -#: field:magento.backend,website_ids:0 -msgid "Website" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_zip +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_zip +msgid "Zip" msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_website -#: view:magento.backend:connector_magento.view_magento_backend_form -#: field:magento.product.product,website_ids:0 -msgid "Websites" +#: selection:magento.binding.backend.read,state:0 +msgid "choose" msgstr "" #. module: connector_magento -#: help:magento.storeview,import_orders_from_date:0 +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_import_orders_from_date msgid "" "do not consider non-imported sale orders before this date. Leave empty to " "import all sale orders" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com" msgstr "ex: http://meu.magento.com.br" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com/admin" msgstr "ex: http://meu.magento.com.br/admin" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: selection:magento.binding.backend.read,state:0 +msgid "get" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "mag-" msgstr "mag-" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding_backend_read +msgid "magento.binding.backend.read" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_config_specializer +msgid "magento.config.specializer" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner_category +msgid "magento.res.partner.category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_warehouse_id +msgid "warehouse" +msgstr "" diff --git a/connector_magento/i18n/sl.po b/connector_magento/i18n/sl.po index 149f12317..f8a6aaf80 100644 --- a/connector_magento/i18n/sl.po +++ b/connector_magento/i18n/sl.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * connector_magento -# +# # Translators: msgid "" msgstr "" @@ -10,20 +10,75 @@ msgstr "" "POT-Creation-Date: 2015-07-22 09:38+0000\n" "PO-Revision-Date: 2015-07-08 12:07+0000\n" "Last-Translator: <>\n" -"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-connector-magento-8-0/language/sl/)\n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-connector-" +"magento-8-0/language/sl/)\n" +"Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: sl\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_state +msgid "" +" * Draft: not confirmed yet and will not be scheduled until confirmed\n" +" * Waiting Another Operation: waiting for another move to proceed before it " +"becomes automatically available (e.g. in Make-To-Order flows)\n" +" * Waiting Availability: still waiting for the availability of products\n" +" * Partially Available: some products are available and reserved\n" +" * Ready to Transfer: products reserved, simply waiting for confirmation.\n" +" * Transferred: has been processed, can't be modified or cancelled anymore\n" +" * Cancelled: has been cancelled, can't be confirmed anymore" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_state +msgid "" +" * The 'Draft' status is used when a user is encoding a new and unconfirmed " +"Invoice.\n" +" * The 'Pro-forma' status is used when the invoice does not have an invoice " +"number.\n" +" * The 'Open' status is used when user creates invoice, an invoice number is " +"generated. It stays in the open status till the user pays the invoice.\n" +" * The 'Paid' status is set automatically when the invoice is paid. Its " +"related journal entries may or may not be reconciled.\n" +" * The 'Cancelled' status is used when user cancel invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_count +msgid "# Product Variants" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_product_count +msgid "# Products" +msgstr "" #. module: connector_magento -#: help:magento.sale.order,magento_order_id:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sales_count +msgid "# Sales" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_count +msgid "# of Invoices" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_count +msgid "# of Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_magento_order_id msgid "'order_id' field in Magento" msgstr "" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form msgid "(recompute)" msgstr "" @@ -43,1151 +98,4060 @@ msgstr "" #: sql_constraint:magento.product.product:0 #: sql_constraint:magento.res.partner:0 #: sql_constraint:magento.res.partner.category:0 -#: sql_constraint:magento.sale.order:0 -#: sql_constraint:magento.sale.order.line:0 +#: sql_constraint:magento.sale.order:0 sql_constraint:magento.sale.order.line:0 #: sql_constraint:magento.stock.picking:0 sql_constraint:magento.store:0 #: sql_constraint:magento.storeview:0 sql_constraint:magento.website:0 msgid "A binding already exists with the same Magento ID." msgstr "" #. module: connector_magento -#: sql_constraint:magento.address:0 -msgid "A partner address can only have one binding by backend." +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_type +msgid "" +"A category of the view type is a virtual category that can be used as the " +"parent of another category to create a hierarchical structure." msgstr "" #. module: connector_magento -#: help:magento.backend,sale_prefix:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_sale msgid "" -"A prefix put before the name of imported sales orders.\n" -"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, will be named 'mag-100000692' in OpenERP." +"A description of the Product that you want to communicate to your customers. " +"This description will be copied to every Sale Order, Delivery Order and " +"Customer Invoice/Refund" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "API" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description_purchase +msgid "" +"A description of the Product that you want to communicate to your vendors. " +"This description will be copied to every Purchase Order, Receipt and Vendor " +"Bill/Refund." msgstr "" #. module: connector_magento -#: field:magento.address,is_magento_order_address:0 -msgid "Address from a Magento Order" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "" +"A parent sales order has been canceled on the backend and needs to be " +"canceled." msgstr "" #. module: connector_magento -#: field:magento.backend,admin_location:0 -msgid "Admin Location" +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_parent_id +msgid "A parent sales order is a sales order replaced by this one." msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Advanced Configuration" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_need_cancel +msgid "A parent sales order needs cancel" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:173 -#, python-format -msgid "Already exported" +#: sql_constraint:magento.address:0 +msgid "A partner address can only have one binding by backend." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:611 -#, python-format -msgid "Already imported" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_description +msgid "" +"A precise description of the Product, used only for internal information " +"purposes." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:208 -#, python-format -msgid "Already up-to-date." +#: model:ir.model.fields,help:connector_magento.field_magento_backend_sale_prefix +msgid "" +"A prefix put before the name of imported sales orders.\n" +"For instance, if the prefix is 'mag-', the sales order 100000692 in Magento, " +"will be named 'mag-100000692' in Odoo." msgstr "" #. module: connector_magento -#: help:magento.res.partner,consider_as_company:0 +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_type msgid "" -"An account imported with a 'company' in the billing address is considered as a company.\n" -" The partner takes the name of the company and is not merged with the billing address." +"A stockable product is a product for which you manage stock. The \"Inventory" +"\" app has to be installed.\n" +"A consumable product, on the other hand, is a product for which stock is not " +"managed.\n" +"A service is a non-material product you provide.\n" +"A digital content is a non-material product you sell online. The files " +"attached to the products are the one that are sold on the e-commerce such as " +"e-books, music, pictures,... The \"Digital Product\" module has to be " +"installed." msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_backend -msgid "Backends" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "API" msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_password:0 -msgid "Basic Auth. Password" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_account_id +msgid "Account" msgstr "" #. module: connector_magento -#: field:magento.backend,auth_basic_username:0 -msgid "Basic Auth. Username" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "Account Payable" msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_password:0 -msgid "Basic access authentication web server side password" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "Account Receivable" msgstr "" #. module: connector_magento -#: help:magento.backend,auth_basic_username:0 -msgid "Basic access authentication web server side username" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date +msgid "Accounting Date" msgstr "" #. module: connector_magento -#: field:res.partner,birthday:0 -msgid "Birthday" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction +msgid "Action Needed" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_bank_account_required msgid "" -"By clicking on the buttons,\n" -" you will initiate the synchronizations\n" -" with Magento.\n" -" Note that the import or exports\n" -" won't be done directly,\n" -" they will create 'Jobs'\n" -" executed as soon as possible." +"Activate this option if this payment method requires you to know the bank " +"account number of your customer or supplier." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:180 -#, python-format -msgid "" -"Canceled: the delivery order does not contain lines from the original sale " -"order." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_active +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_active +msgid "Active" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_delivery_carrier -msgid "Carrier" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_comment +msgid "Additional Information" msgstr "" #. module: connector_magento -#: help:magento.storeview,no_sales_order_sync:0 -msgid "" -"Check if the storeview is active in Magento but its sales orders should not " -"be imported." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_type +msgid "Address Type" msgstr "" #. module: connector_magento -#: help:magento.product.product,no_stock_sync:0 -msgid "Check this to exclude the product from stock synchronizations." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_magento_order_address +msgid "Address from a Magento Order" msgstr "" #. module: connector_magento -#: help:magento.backend,product_stock_field_id:0 -msgid "" -"Choose the field of the product which will be used for stock inventory updates.\n" -"If empty, Quantity Available is used." +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_admin_location +msgid "Admin Location" msgstr "" #. module: connector_magento -#: field:magento.storeview,code:0 field:magento.website,code:0 -msgid "Code" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Advanced Configuration" msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,company:0 -msgid "Company" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_all_qty_delivered +msgid "All quantities delivered" msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Complete" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "Allow moving packs" msgstr "" #. module: connector_magento -#: field:magento.product.product,magento_qty:0 -msgid "Computed Quantity" +#: code:addons/connector_magento/models/stock_picking/exporter.py:69 +#, python-format +msgid "Already exported" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_connector_config_settings -msgid "Connector Configuration" +#: code:addons/connector_magento/models/sale_order/importer.py:368 +#, python-format +msgid "Already imported" msgstr "" #. module: connector_magento -#: field:magento.res.partner,consider_as_company:0 -msgid "Considered as company" +#: code:addons/connector_magento/components/importer.py:198 +#, python-format +msgid "Already up-to-date." msgstr "" #. module: connector_magento -#: view:payment.method:connector_magento.payment_method_view_form -msgid "Create invoice on" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual +msgid "Amount Due" msgstr "" #. module: connector_magento -#: field:magento.store,create_invoice_on:0 -#: field:payment.method,create_invoice_on:0 -msgid "Create invoice on action" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Amount Due in Company Currency" msgstr "" #. module: connector_magento -#: field:magento.address,created_at:0 -#: field:magento.product.product,created_at:0 -#: field:magento.res.partner,created_at:0 -msgid "Created At (on Magento)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_residual_signed +msgid "Amount Due in Invoice Currency" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,create_uid:0 -#: field:magento.address,create_uid:0 field:magento.backend,create_uid:0 -#: field:magento.product.category,create_uid:0 -#: field:magento.product.product,create_uid:0 -#: field:magento.res.partner,create_uid:0 -#: field:magento.res.partner.category,create_uid:0 -#: field:magento.sale.order,create_uid:0 -#: field:magento.sale.order.line,create_uid:0 -#: field:magento.stock.picking,create_uid:0 field:magento.store,create_uid:0 -#: field:magento.storeview,create_uid:0 field:magento.website,create_uid:0 -msgid "Created by" +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_consider_as_company +msgid "" +"An account imported with a 'company' in the billing address is considered as " +"a company.\n" +" The partner takes the name of the company and is not merged with the " +"billing address." msgstr "" #. module: connector_magento -#: field:magento.account.invoice,create_date:0 -#: field:magento.address,create_date:0 field:magento.backend,create_date:0 -#: field:magento.product.category,create_date:0 -#: field:magento.product.product,create_date:0 -#: field:magento.res.partner,create_date:0 -#: field:magento.res.partner.category,create_date:0 -#: field:magento.sale.order,create_date:0 -#: field:magento.sale.order.line,create_date:0 -#: field:magento.stock.picking,create_date:0 field:magento.store,create_date:0 -#: field:magento.storeview,create_date:0 field:magento.website,create_date:0 -msgid "Created on" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_related_project_id +msgid "Analytic Account" msgstr "" #. module: connector_magento -#: field:magento.backend,use_custom_api_path:0 -msgid "Custom Api Path" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_analytic_tag_ids +msgid "Analytic Tags" msgstr "" #. module: connector_magento -#: field:magento.address,is_default_billing:0 -msgid "Default Invoice" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_account_analytic_id +msgid "Analytic account" msgstr "" #. module: connector_magento -#: field:magento.backend,default_lang_id:0 -msgid "Default Language" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_value_ids +msgid "Attributes" msgstr "" #. module: connector_magento -#: field:magento.backend,default_category_id:0 -msgid "Default Product Category" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_workflow_process_id +msgid "Automatic Workflow" msgstr "" #. module: connector_magento -#: field:magento.address,is_default_shipping:0 -msgid "Default Shipping" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backorder_id +msgid "Back Order of" msgstr "" #. module: connector_magento -#: field:magento.product.category,description:0 -msgid "Description" +#: model:ir.ui.menu,name:connector_magento.menu_magento_backend +msgid "Backends" msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Do Not Manage Stock" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_account_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_account_count +msgid "Bank" msgstr "" #. module: connector_magento -#: help:magento.store,send_invoice_paid_mail:0 -msgid "" -"Does the invoice export/creation should send an email notification on " -"Magento side?" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_bank_id +msgid "Bank Account" msgstr "" #. module: connector_magento -#: help:magento.store,send_picking_done_mail:0 +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_bank_id msgid "" -"Does the picking export/creation should send an email notification on " -"Magento side?" +"Bank Account Number to which the invoice will be paid. A Company bank " +"account if this is a Customer Invoice or Vendor Refund, otherwise a Partner " +"bank account number." msgstr "" #. module: connector_magento -#: field:magento.res.partner,emailid:0 -msgid "E-mail address" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_bank_account_required +msgid "Bank Account Required" msgstr "" #. module: connector_magento -#: field:magento.storeview,enabled:0 -msgid "Enabled" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_bank_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_bank_ids +msgid "Banks" msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_export_partner:0 -msgid "Export Partners to Magento (experimental)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_barcode +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_barcode +msgid "Barcode" msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_export_tracking:0 -msgid "Export tracking numbers" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_list_price +msgid "" +"Base price to compute the customer price. Sometimes called the catalog price." msgstr "" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Extensions" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic Auth. Password" msgstr "" #. module: connector_magento -#: field:magento.res.partner,guest_customer:0 -msgid "Guest Customer" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic Auth. Username" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "HTTP Authentication" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_password +msgid "Basic access authentication web server side password" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,id:0 field:magento.address,id:0 -#: field:magento.backend,id:0 field:magento.binding,id:0 -#: field:magento.product.category,id:0 field:magento.product.product,id:0 -#: field:magento.res.partner,id:0 field:magento.res.partner.category,id:0 -#: field:magento.sale.order,id:0 field:magento.sale.order.line,id:0 -#: field:magento.stock.picking,id:0 field:magento.store,id:0 -#: field:magento.storeview,id:0 field:magento.website,id:0 -msgid "ID" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_auth_basic_username +msgid "Basic access authentication web server side username" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,magento_id:0 -#: field:magento.address,magento_id:0 field:magento.binding,magento_id:0 -#: field:magento.product.category,magento_id:0 -#: field:magento.product.product,magento_id:0 -#: field:magento.res.partner,magento_id:0 -#: field:magento.res.partner.category,magento_id:0 -#: field:magento.sale.order,magento_id:0 -#: field:magento.sale.order.line,magento_id:0 -#: field:magento.stock.picking,magento_id:0 field:magento.store,magento_id:0 -#: field:magento.storeview,magento_id:0 field:magento.website,magento_id:0 -msgid "ID on Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image +msgid "Big-sized image" msgstr "" #. module: connector_magento -#: help:magento.backend,default_category_id:0 -msgid "" -"If a default category is selected, products imported without a category will" -" be linked to it." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_birthday +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_birthday +#: model:ir.model.fields,field_description:connector_magento.field_res_users_birthday +msgid "Birthday" msgstr "" #. module: connector_magento -#: help:magento.backend,default_lang_id:0 -msgid "" -"If a default language is selected, the records will be imported in the translation of this language.\n" -"Note that a similar configuration exists for each storeview." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_bounce +msgid "Bounce" msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_bulk +msgid "Bulk Weight" msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "Import Sale Orders since" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "" +"By clicking on the buttons,\n" +" you will initiate the synchronizations\n" +" with Magento.\n" +" Note that the import or exports\n" +" won't be done directly,\n" +" they will create 'Jobs'\n" +" executed as soon as possible." msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import all customer groups" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered_updateable +msgid "Can Edit Delivered" msgstr "" #. module: connector_magento -#: field:magento.backend,import_categories_from_date:0 -msgid "Import categories from date" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_purchase_ok +msgid "Can be Purchased" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import in background" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_rental +msgid "Can be Rent" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import partners from all websites" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_ok +msgid "Can be Sold" msgstr "" #. module: connector_magento -#: field:magento.website,import_partners_from_date:0 -msgid "Import partners from date" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Cancel" msgstr "" #. module: connector_magento -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Import partners since" +#: code:addons/connector_magento/models/sale_order/common.py:114 +#, python-format +msgid "Cancel sales order %s" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products categories since" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_canceled_in_backend +msgid "Canceled in backend" msgstr "" #. module: connector_magento -#: field:magento.backend,import_products_from_date:0 -msgid "Import products from date" +#: code:addons/connector_magento/models/stock_picking/exporter.py:76 +#, python-format +msgid "" +"Canceled: the delivery order does not contain lines from the original sale " +"order." msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import products since" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_cancellation_resolved +msgid "Cancellation from the backend resolved" msgstr "" #. module: connector_magento -#: field:magento.storeview,import_orders_from_date:0 -msgid "Import sale orders from date" +#: model:ir.model,name:connector_magento.model_delivery_carrier +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_id +msgid "Carrier" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Import sales orders from all store views" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_from_categ_ids +msgid "Category Routes" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Imports" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_type +msgid "Category Type" msgstr "" #. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Informations" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_channel_ids +msgid "Channels" msgstr "" #. module: connector_magento -#: view:magento.product.product:connector_magento.view_magento_product_form -msgid "Inventory Options" +#: model:ir.model.fields,help:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_is_company +msgid "Check if the contact is a company, otherwise it is a person" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_account_invoice -#: field:magento.account.invoice,openerp_id:0 -msgid "Invoice" +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "" +"Check if the storeview is active in Magento but its sales orders should not " +"be imported." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/invoice.py:122 -#: code:addons/connector_magento/tests/test_export_invoice.py:225 -#, python-format -msgid "Invoice Created" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Check the existance of quants linked to this picking" msgstr "" #. module: connector_magento -#: field:magento.storeview,lang_id:0 -msgid "Language" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Check the existence of pack operation on the picking" msgstr "" #. module: connector_magento -#: field:magento.account.invoice,write_uid:0 field:magento.address,write_uid:0 -#: field:magento.backend,write_uid:0 -#: field:magento.product.category,write_uid:0 -#: field:magento.product.product,write_uid:0 -#: field:magento.res.partner,write_uid:0 -#: field:magento.res.partner.category,write_uid:0 -#: field:magento.sale.order,write_uid:0 -#: field:magento.sale.order.line,write_uid:0 -#: field:magento.stock.picking,write_uid:0 field:magento.store,write_uid:0 -#: field:magento.storeview,write_uid:0 field:magento.website,write_uid:0 -msgid "Last Updated by" +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer +msgid "Check this box if this contact is a customer." msgstr "" #. module: connector_magento -#: field:magento.account.invoice,write_date:0 -#: field:magento.address,write_date:0 field:magento.backend,write_date:0 -#: field:magento.product.category,write_date:0 -#: field:magento.product.product,write_date:0 -#: field:magento.res.partner,write_date:0 -#: field:magento.res.partner.category,write_date:0 -#: field:magento.sale.order,write_date:0 -#: field:magento.sale.order.line,write_date:0 -#: field:magento.stock.picking,write_date:0 field:magento.store,write_date:0 -#: field:magento.storeview,write_date:0 field:magento.website,write_date:0 -msgid "Last Updated on" +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier +msgid "" +"Check this box if this contact is a vendor. If it's not checked, purchase " +"people will not see it when encoding a purchase order." msgstr "" #. module: connector_magento -#: help:magento.product.product,magento_qty:0 -msgid "Last computed quantity to send on Magento." +#: model:ir.model.fields,help:connector_magento.field_magento_address_employee +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_employee +msgid "Check this box if this contact is an Employee." msgstr "" #. module: connector_magento -#: field:magento.account.invoice,sync_date:0 field:magento.address,sync_date:0 -#: field:magento.binding,sync_date:0 -#: field:magento.product.category,sync_date:0 -#: field:magento.product.product,sync_date:0 -#: field:magento.res.partner,sync_date:0 -#: field:magento.res.partner.category,sync_date:0 -#: field:magento.sale.order,sync_date:0 -#: field:magento.sale.order.line,sync_date:0 -#: field:magento.stock.picking,sync_date:0 field:magento.store,sync_date:0 -#: field:magento.storeview,sync_date:0 field:magento.website,sync_date:0 -msgid "Last synchronization date" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_no_stock_sync +msgid "Check this to exclude the product from stock synchronizations." msgstr "" #. module: connector_magento -#: field:magento.backend,location:0 -msgid "Location" +#: code:addons/connector_magento/models/magento_backend/common.py:234 +#, python-format +msgid "" +"Check your configuration, we can't get the data. Here is the error:\n" +"%s" msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_root -#: view:payment.method:connector_magento.payment_method_view_form -#: view:res.partner.category:connector_magento.view_partner_category_form -msgid "Magento" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_child_id +msgid "Child Categories" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_address -#: view:magento.address:connector_magento.view_magento_address_form -#: view:magento.address:connector_magento.view_magento_address_tree -msgid "Magento Address" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_child_ids +msgid "Child Tags" msgstr "" #. module: connector_magento -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_address_bind_ids:0 -msgid "Magento Address Bindings" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_product_stock_field_id +msgid "" +"Choose the field of the product which will be used for stock inventory " +"updates.\n" +"If empty, Quantity Available is used." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_backend -#: field:magento.account.invoice,backend_id:0 -#: field:magento.address,backend_id:0 -#: view:magento.backend:connector_magento.view_magento_backend_form -#: view:magento.backend:connector_magento.view_magento_backend_tree -#: field:magento.binding,backend_id:0 -#: field:magento.product.category,backend_id:0 -#: field:magento.product.product,backend_id:0 -#: field:magento.res.partner,backend_id:0 -#: field:magento.res.partner.category,backend_id:0 -#: field:magento.sale.order,backend_id:0 -#: field:magento.sale.order.line,backend_id:0 -#: field:magento.stock.picking,backend_id:0 field:magento.store,backend_id:0 -#: field:magento.storeview,backend_id:0 field:magento.website,backend_id:0 -msgid "Magento Backend" -msgstr "Magento ozadje" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_city +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_city +msgid "City" +msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_backend -msgid "Magento Backends" +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Close" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_binding -#: model:ir.model,name:connector_magento.model_magento_res_partner_category -msgid "Magento Binding (abstract)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_code +msgid "Code" msgstr "" #. module: connector_magento -#: view:account.invoice:connector_magento.view_invoice_magento_form -#: field:account.invoice,magento_bind_ids:0 -#: view:product.category:connector_magento.view_product_category_form -#: field:product.category,magento_bind_ids:0 -#: view:product.product:connector_magento.product_normal_form_view -#: field:product.product,magento_bind_ids:0 -#: view:res.partner:connector_magento.view_partner_form -#: field:res.partner,magento_bind_ids:0 -#: field:res.partner.category,magento_bind_ids:0 -#: field:sale.order,magento_bind_ids:0 -#: field:sale.order.line,magento_bind_ids:0 -#: view:stock.picking:connector_magento.view_stock_picking_out_magento_form -#: field:stock.picking,magento_bind_ids:0 -msgid "Magento Bindings" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_color +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_color +msgid "Color Index" msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_code:0 -msgid "Magento Carrier Code" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_partner_id +msgid "Commercial Entity" msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_child_ids:0 -msgid "Magento Child Categories" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref_company_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref_company_ids +msgid "Companies that refers to partner" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Magento Configuration" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_company_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_company_id +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_company +#: model:ir.model.fields,field_description:connector_magento.field_res_users_company +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Company" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_stock_picking -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_form -#: view:magento.stock.picking:connector_magento.view_magento_stock_picking_out_tree -msgid "Magento Delivery Order" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_company_currency_id +msgid "Company Currency" msgstr "" #. module: connector_magento -#: field:magento.res.partner,group_id:0 -msgid "Magento Group (Category)" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_name +msgid "Company Name" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_account_invoice -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_form -#: view:magento.account.invoice:connector_magento.view_magento_account_invoice_tree -msgid "Magento Invoice" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_commercial_company_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_commercial_company_name +msgid "Company Name Entity" msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_order_id:0 -msgid "Magento Order ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_company_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_company_type +msgid "Company Type" msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_order_line_ids:0 -msgid "Magento Order Lines" +#: selection:magento.stock.picking,picking_method:0 +msgid "Complete" msgstr "" #. module: connector_magento -#: field:magento.product.category,magento_parent_id:0 -msgid "Magento Parent Category" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contact_address +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contact_address +msgid "Complete Address" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_res_partner -#: field:magento.address,magento_partner_id:0 -#: view:magento.res.partner:connector_magento.view_magento_res_partner_form -#: view:magento.res.partner:connector_magento.view_magento_res_partner_tree -msgid "Magento Partner" -msgstr "Magento partner" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date_done +msgid "Completion Date of Transfer" +msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_product -#: view:magento.product.product:connector_magento.view_magento_product_form -#: view:magento.product.product:connector_magento.view_magento_product_tree -msgid "Magento Product" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_qty +msgid "Computed Quantity" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_product_category -#: view:magento.product.category:connector_magento.view_magento_product_category_form -#: view:magento.product.category:connector_magento.view_magento_product_category_tree -msgid "Magento Product Category" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_confirmation_date +msgid "Confirmation Date" msgstr "" #. module: connector_magento -#: field:magento.product.product,product_type:0 -msgid "Magento Product Type" +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_consider_as_company +msgid "Considered as company" msgstr "" #. module: connector_magento -#: field:magento.backend,product_binding_ids:0 -#: field:magento.website,product_binding_ids:0 -msgid "Magento Products" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_child_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_child_ids +msgid "Contacts" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order -#: field:magento.account.invoice,magento_order_id:0 -#: field:magento.sale.order.line,magento_order_id:0 -#: field:magento.stock.picking,magento_order_id:0 -msgid "Magento Sale Order" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_contracts_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contract_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_contracts_count +msgid "Contracts" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_sale_order_line -msgid "Magento Sale Order Line" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_standard_price +msgid "Cost" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_store -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.store:connector_magento.view_magento_store_tree -msgid "Magento Store" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_cost_method +msgid "Cost method" msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_store -msgid "Magento Stores" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_standard_price +msgid "" +"Cost of the product template used for standard stock valuation in accounting " +"and used as a base price on purchase orders. Expressed in the default unit " +"of measure of the product." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_storeview -#: field:magento.sale.order,storeview_id:0 -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.storeview:connector_magento.view_magento_storeview_tree -msgid "Magento Storeview" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_cost_method +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_cost_method +msgid "Costing Method" msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview -msgid "Magento Storeviews" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_count +msgid "Count Payment Token" msgstr "" #. module: connector_magento -#: field:delivery.carrier,magento_tracking_title:0 -msgid "Magento Tracking Title" +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_bounce +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_bounce +msgid "Counter of the number of bounced emails for this contact" msgstr "" #. module: connector_magento -#: field:magento.res.partner,taxvat:0 -msgid "Magento VAT" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_country_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_country_id +msgid "Country" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_magento_website -#: field:magento.address,website_id:0 field:magento.res.partner,website_id:0 -#: field:magento.store,website_id:0 -#: view:magento.website:connector_magento.view_magento_website_form -#: view:magento.website:connector_magento.view_magento_website_tree -msgid "Magento Website" +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +msgid "Create invoice on" msgstr "" #. module: connector_magento -#: model:ir.actions.act_window,name:connector_magento.action_magento_website -msgid "Magento Websites" +#: model:ir.model.fields,field_description:connector_magento.field_account_payment_mode_create_invoice_on +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_invoice_on +msgid "Create invoice on action" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1079 -#, python-format -msgid "Magento sales order is already in state %s" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_created_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_created_at +msgid "Created At (on Magento)" msgstr "" #. module: connector_magento -#: view:connector.config.settings:connector_magento.view_magento_config_settings -msgid "Magentoerpconnect" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_uid +msgid "Created by" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Main Configuration" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_create_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_create_date +msgid "Created on" msgstr "" #. module: connector_magento -#: field:magento.product.product,backorders:0 -msgid "Manage Inventory Backorders" +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date +msgid "Creation Date" msgstr "" #. module: connector_magento -#: selection:magento.product.product,manage_stock:0 -msgid "Manage Stock" +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_date +msgid "Creation Date, usually the time of the order" msgstr "" #. module: connector_magento -#: field:magento.product.product,manage_stock:0 -msgid "Manage Stock Level" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit_limit +msgid "Credit Limit" msgstr "" #. module: connector_magento -#: field:magento.backend,name:0 field:magento.store,name:0 -#: field:magento.storeview,name:0 field:magento.website,name:0 -msgid "Name" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_currency_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_currency_id +msgid "Currency" msgstr "" #. module: connector_magento -#: field:magento.res.partner,newsletter:0 -msgid "Newsletter" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_qty_available +msgid "" +"Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"stored in the Stock Location of the Warehouse of this Shop, or any of its " +"children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." msgstr "" #. module: connector_magento -#: field:magento.storeview,no_sales_order_sync:0 -msgid "No Sales Order Synchronization" +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_custom_api_path +msgid "Custom Api Path" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "No Sell" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_id +msgid "Customer" msgstr "" #. module: connector_magento -#: field:magento.product.product,no_stock_sync:0 -msgid "No Stock Synchronization" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_delay +msgid "Customer Lead Time" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/related_action.py:55 -#, python-format -msgid "" -"No admin URL configured on the backend or no admin path is defined for this " -"record." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_customer +msgid "Customer Location" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:83 -#, python-format -msgid "No tracking number to send." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Customer Payment Mode" msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,notes:0 -msgid "Notes" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_payment_term_id +msgid "Customer Payment Terms" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:407 -#: code:addons/connector_magento/unit/export_synchronizer.py:412 -#, python-format -msgid "Nothing to export." +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_partner_ref +msgid "Customer Ref" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "" -"Once imported,\n" -" some types of records,\n" -" like the products or categories,\n" -" need a manual review.\n" -" You will find the list\n" -" of the new records to review\n" -" in the menu 'Connectors > Checkpoint'." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_client_order_ref +msgid "Customer Reference" msgstr "" #. module: connector_magento -#: view:magento.store:connector_magento.view_magento_store_form -#: view:magento.storeview:connector_magento.view_magento_storeview_form -#: view:magento.website:connector_magento.view_magento_website_form -msgid "Options" +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_taxes_id +msgid "Customer Taxes" msgstr "" #. module: connector_magento -#: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_date +msgid "Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_date_done +msgid "Date of Transfer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_last_post +msgid "Date of the last message posted on the record." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_confirmation_date +msgid "Date on which the sale order is confirmed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_billing +msgid "Default Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_lang_id +msgid "Default Language" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_owner_id +msgid "Default Owner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_default_category_id +msgid "Default Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_default_shipping +msgid "Default Shipping" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_id +msgid "Default Unit of Measure used for all stock operation." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_uom_po_id +msgid "" +"Default Unit of Measure used for purchase orders. It must be in the same " +"category than the default unit of measure." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_trust +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_trust +msgid "Degree of trust you have in this debtor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_delivered +msgid "Delivered" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_delivery_count +msgid "Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_shipping_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery Address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_customer_lead +msgid "Delivery Lead Time" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_delivery_carrier_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_carrier_id +msgid "Delivery Method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_count +msgid "Delivery Orders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_type +msgid "Delivery Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_partner_shipping_id +msgid "Delivery address for current invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_shipping_id +msgid "Delivery address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_route_ids +msgid "" +"Depending on the modules installed, this will allow you to define the route " +"of the product: whether it will be bought, manufactured, MTO/MTS,..." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_name +msgid "Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_picking +msgid "Description on Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_dest_id +msgid "Destination Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_discount +msgid "Discount (%)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_display_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_display_name +msgid "Display Name" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Do Not Manage Stock" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "" +"Does the invoice export/creation should send an email notification on " +"Magento side?" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_send_picking_done_mail +msgid "" +"Does the picking export/creation should send an email notification on " +"Magento side?" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_due +msgid "Due Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_emailid +msgid "E-mail address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_partner_share +msgid "" +"Either customer (no user), either shared user. Indicated the current partner " +"is a customer without access or with a limited access created for sharing " +"data." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email +msgid "Email" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_notify_email +msgid "Email Messages and Notifications" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_employee +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_employee +msgid "Employee" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_enabled +msgid "Enabled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_delivery_price +msgid "Estimated Delivery Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_exception_ids +msgid "Exceptions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_expense_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_expense_id +msgid "Expense Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_validity_date +msgid "Expiration Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_export_tracking +msgid "Export tracking numbers" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_ids +msgid "Extra categories" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_fax +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_fax +msgid "Fax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_data +msgid "File" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_name +msgid "File Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_carrier_id +msgid "Fill this field if you plan to invoice the shipping based on picking." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_firstname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_firstname +msgid "First name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_account_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_fiscal_position_id +msgid "Fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_follower_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_follower_ids +msgid "Followers" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_channel_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_partner_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_removal_strategy_id +msgid "Force Removal Strategy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_virtual_available +msgid "Forecast Quantity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_email_formatted +msgid "Format email address \"Name \"" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_email_formatted +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_email_formatted +msgid "Formatted Email" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Get" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_packaging_ids +msgid "" +"Gives the different ways to package the same product. This has no impact on " +"the picking order and is mainly used if you use the EDI module." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sequence +msgid "Gives the sequence order when displaying a product list" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_guest_customer +msgid "Guest Customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_hs_code +msgid "HS Code" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "HTTP Authentication" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_has_checkpoint +msgid "Has Checkpoint" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_exist +msgid "Has Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_has_scrap_move +msgid "Has Scrap Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_need_cancel +msgid "Has been canceled on the backend, need to be canceled." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_has_outstanding +msgid "Has outstanding" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_quant_reserved_exist +msgid "Has quants already reserved" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "Has unreconciled entries" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Here is the file with information read drom the backend:" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id_5804 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_id +msgid "ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_external_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_external_id +msgid "ID on Magento" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_im_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_im_status +msgid "IM Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_category_id +msgid "" +"If a default category is selected, products imported without a category will " +"be linked to it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_default_lang_id +msgid "" +"If a default language is selected, the records will be imported in the " +"translation of this language.\n" +"Note that a similar configuration exists for each storeview." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_picking_type_entire_packs +msgid "" +"If checked, this shows the packs to be moved as a whole in the Operations " +"tab all the time, even if there was no entire pack reserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_opt_out +msgid "" +"If opt-out is checked, this contact has refused to receive emails for mass " +"mailing and marketing campaign. Filter 'Available for Mass Mailing' allows " +"users to filter the partners when performing mass mailing." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'. The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_valuation +msgid "" +"If perpetual valuation is enabled for a product, the system will " +"automatically create journal entries corresponding to stock moves, with " +"product price as specified by the 'Costing Method'The inventory variation " +"account set on the product category will represent the current inventory " +"value, and the stock input and stock output account will hold the " +"counterpart moves for incoming and outgoing products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_team_id +msgid "" +"If set, sale team used notably for sales and assignations related to this " +"partner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_account_analytic_id +msgid "" +"If specified, this analytic account will be used to fill the field on the " +"sale order created by the connector. The value can also be specified on " +"website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "" +"If specified, this fiscal position will be used to fill the field fiscal " +"position on the sale order created by the connector.The value can also be " +"specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,help:connector_magento.field_magento_website_specific_warehouse_id +msgid "" +"If specified, this warehouse will be used to load fill the field warehouse " +"(and company) on the sale order created by the connector.The value can also " +"be specified on website or the store or the store view." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_lang +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_lang +msgid "" +"If the selected language is loaded in the system, all documents related to " +"this contact will be printed in this language. If not, it will be English." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,help:connector_magento.field_magento_website_is_multi_company +msgid "" +"If this flag is set, it is possible to choose warehouse at each level. When " +"import partner, ignore company_id if this flag is set." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_backorder_id +msgid "" +"If this shipment was split, then this field links to the shipment which " +"contains the already processed part." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_active +msgid "" +"If unchecked, it will allow you to hide the product without removing it." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_payment_term_id +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. If you keep the payment term and the due " +"date empty, it means direct payment. The payment term may compute several " +"due dates, for example 50% now, 50% in one month." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_due +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. The payment term may compute several due " +"dates, for example 50% now and 50% in one month, but if you want to force a " +"due date, make sure that the payment term is not set on the invoice. If you " +"keep the payment term and the due date empty, it means direct payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_ignore_exception +msgid "Ignore Exceptions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image +msgid "Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image +msgid "" +"Image of the product variant (Big-sized image of product template if false). " +"It is automatically resized as a 1024x1024px image, with aspect ratio " +"preserved." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_medium +msgid "" +"Image of the product variant (Medium-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_small +msgid "" +"Image of the product variant (Small-sized image of product template if " +"false)." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "Import Sale Orders since" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import all customer groups" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_categories_from_date +msgid "Import categories from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import in background" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import partners from all websites" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_import_partners_from_date +msgid "Import partners from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Import partners since" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products categories since" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_import_products_from_date +msgid "Import products from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import products since" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_import_orders_from_date +msgid "Import sale orders from date" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Import sales orders from all store views" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Imports" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_account_income_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_account_income_id +msgid "Income Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_incoming_qty +msgid "Incoming" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_incoterms_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_incoterm +msgid "Incoterms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_incoterms_id +msgid "" +"Incoterms are series of sales terms. They are used to divide transaction " +"costs and responsibilities between buyer and seller and reflect state-of-the-" +"art transportation practices." +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Informations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_ref +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_default_code +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_ref +msgid "Internal Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_barcode +msgid "International Article Number used for product identification." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_incoterm +msgid "" +"International Commercial Terms are a series of predefined commercial terms " +"used in international transactions." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_inventory +msgid "Inventory Location" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +msgid "Inventory Options" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_valuation +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_valuation +msgid "Inventory Valuation" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_invoice +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn +msgid "Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice Address" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/account_invoice/exporter.py:26 +#, python-format +msgid "Invoice Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_date_invoice +msgid "Invoice Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_invoice_line_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_lines +msgid "Invoice Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_shipping_on_delivery +msgid "Invoice Shipping on Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_status +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_invoice_status +msgid "Invoice Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_partner_invoice_id +msgid "Invoice address for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_refund_invoice_id +msgid "Invoice for which this invoice is the refund" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_invoiced +msgid "Invoiced" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_invoice_ids +msgid "Invoices" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_invoice_policy +msgid "Invoicing Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_is_multi_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_is_multi_company +msgid "Is Backend Multi-Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_is_follower +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_is_company +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_is_company +msgid "Is a Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_customer +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_customer +msgid "Is a Customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_is_delivery +msgid "Is a Delivery" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier +msgid "Is a Vendor" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reconciled +msgid "" +"It indicates that the invoice has been paid and the journal entry of the " +"invoice has been reconciled with one or several journal entries of payment." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_sent +msgid "It indicates that the invoice has been sent." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_move_type +msgid "It specifies goods to be deliver partially or all at once" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_function +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_function +msgid "Job Position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_journal_id +msgid "Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_id +msgid "Journal Entry" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_move_name +msgid "Journal Entry Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_journal_item_count +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_issued_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_journal_item_count +msgid "Journal Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date_invoice +msgid "Keep empty to use the current date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_date +msgid "Keep empty to use the invoice date." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lang +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_lang_id +msgid "Language" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_last_post +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_last_post +msgid "Last Message Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_address___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_store___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview___last_update +#: model:ir.model.fields,field_description:connector_magento.field_magento_website___last_update +msgid "Last Modified on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_uid +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_write_date +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_write_date +msgid "Last Updated on" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_magento_qty +msgid "Last computed quantity to send on Magento." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_lastname +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_lastname +msgid "Last name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "" +"Last time the invoices & payments matching was performed for this partner. " +"It is set either if there's not at least an unreconciled debit and an " +"unreconciled credit or if you click the \"Done\" button." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_last_time_entries_checked +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_last_time_entries_checked +msgid "Latest Invoices & Payments Matching Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_launch_pack_operations +msgid "Launch Pack Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_sequence +msgid "Layout Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_left +msgid "Left Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_left +msgid "Left parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_id +msgid "Link to the automatically generated Journal Items." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_location +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_location_id +msgid "Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_packaging_ids +msgid "Logistical Units" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.menu,name:connector_magento.menu_magento_root +#: model:ir.ui.view,arch_db:connector_magento.account_payment_mode_form_inherit +#: model:ir.ui.view,arch_db:connector_magento.view_magento_delivery_carrier_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_category_form +msgid "Magento" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_address +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_address_tree +msgid "Magento Address" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_address_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_address_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +msgid "Magento Address Bindings" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_backend +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_backend_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_backend_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_tree +msgid "Magento Backend" +msgstr "Magento ozadje" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_backend +msgid "Magento Backends" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_carrier_code +#, fuzzy +msgid "Magento Base Carrier Code" +msgstr "Magento ozadje" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding +msgid "Magento Binding (abstract)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_product_product_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_category_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_partner_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_res_users_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_line_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_sale_order_magento_bind_ids +#: model:ir.model.fields,field_description:connector_magento.field_stock_picking_magento_bind_ids +#: model:ir.ui.view,arch_db:connector_magento.product_normal_form_view +#: model:ir.ui.view,arch_db:connector_magento.view_invoice_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_sale_order_magento_form +#: model:ir.ui.view,arch_db:connector_magento.view_stock_picking_out_magento_form +msgid "Magento Bindings" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_code +msgid "Magento Carrier Code" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_child_ids +msgid "Magento Child Categories" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Magento Configuration" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_stock_picking +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_stock_picking_out_tree +msgid "Magento Delivery Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_group_id +msgid "Magento Group (Category)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_id +#, fuzzy +msgid "Magento Id" +msgstr "Magento ozadje" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_account_invoice +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_account_invoice_tree +msgid "Magento Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_id +msgid "Magento Order ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_order_line_ids +msgid "Magento Order Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_magento_parent_id +msgid "Magento Parent Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_magento_partner_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_res_partner_tree +msgid "Magento Partner" +msgstr "Magento partner" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_product +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_tree +msgid "Magento Product" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_product_category +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_product_category_tree +msgid "Magento Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_type +msgid "Magento Product Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_binding_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_product_binding_ids +msgid "Magento Products" +msgstr "" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_rewards +#: model:product.template,name:connector_magento.product_product_rewards_product_template +#, fuzzy +msgid "Magento Rewards" +msgstr "Magento ozadje" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_magento_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_magento_order_id +msgid "Magento Sale Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_sale_order_line +msgid "Magento Sale Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_sale_order_tree +#, fuzzy +msgid "Magento Sales Orders" +msgstr "Magento partner" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_tree +msgid "Magento Store" +msgstr "" + +#. module: connector_magento +#: model:product.product,name:connector_magento.product_product_store_credit +#: model:product.template,name:connector_magento.product_product_store_credit_product_template +#, fuzzy +msgid "Magento Store Credit" +msgstr "Magento partner" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_store +msgid "Magento Stores" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_storeview +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_storeview_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_tree +msgid "Magento Storeview" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_storeview +msgid "Magento Storeviews" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_delivery_carrier_magento_tracking_title +msgid "Magento Tracking Title" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_taxvat +msgid "Magento VAT" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_website_id +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_tree +msgid "Magento Website" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.action_magento_website +msgid "Magento Websites" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_backend_id +#, fuzzy +msgid "Magento backend id" +msgstr "Magento ozadje" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_magento_binding_model +msgid "Magento binding model" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:58 +#, python-format +msgid "Magento sales order is already in state %s" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Main Configuration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_main_exception_id +msgid "Main Exception" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_backorders +msgid "Manage Inventory Backorders" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,manage_stock:0 +msgid "Manage Stock" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_manage_stock +msgid "Manage Stock Level" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_track_service +msgid "" +"Manually set quantities on order: Invoice based on the manually entered " +"quantity, without creating an analytic account.\n" +"Timesheets on contract: Invoice based on the tracked hours on the related " +"timesheet.\n" +"Create a task and track hours: Create a task on the sale order validation " +"and track the work hours." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_validity_date +msgid "" +"Manually set the expiration date of your quotation (offer), or it will set " +"the date automatically based on the template if online quotation is " +"installed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_max_date +msgid "Max. Expected Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_medium +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_medium +msgid "Medium-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_medium +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_medium +msgid "" +"Medium-sized image of this contact. It is automatically resized as a " +"128x128px image, with aspect ratio preserved. Use this field in form views " +"or some kanban views." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_invoice_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_invoice_warn_msg +msgid "Message for Invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn_msg +msgid "Message for Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn_msg +msgid "Message for Sales Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn_msg +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn_msg +msgid "Message for Stock Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_ids +msgid "Messages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_orderpoint_ids +msgid "Minimum Stock Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_mobile +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_mobile +msgid "Mobile" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_name +msgid "Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_need_cancel +msgid "Need to be canceled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_newsletter +msgid "Newsletter" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_no_sales_order_sync +msgid "No Sales Order Synchronization" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "No Sell" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_no_stock_sync +msgid "No Stock Synchronization" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/queue_job/common.py:27 +#, python-format +msgid "" +"No admin URL configured on the backend or no admin path is defined for this " +"record." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:63 +#, python-format +msgid "No tracking number to send." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_product_ids +msgid "Non pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_comment +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_notes +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_note +msgid "Notes" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:363 +#: code:addons/connector_magento/components/exporter.py:368 +#, python-format +msgid "Nothing to export." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_number +msgid "Number" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_number_of_packages +msgid "Number of Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_line_customer_lead +msgid "" +"Number of days between the order confirmation and the shipping of the " +"products to the customer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_needaction_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "" +"Once imported,\n" +" some types of records,\n" +" like the products or categories,\n" +" need a manual review.\n" +" You will find the list\n" +" of the new records to review\n" +" in the menu 'Connectors > Checkpoint'." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_opt_out +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_opt_out +msgid "Opt-Out" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Options" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_date_order +msgid "Order Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_order_line +msgid "Order Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_order_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_name +msgid "Order Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_state +msgid "Order Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_invoice_policy +msgid "" +"Ordered Quantity: Invoice based on the quantity the customer ordered.\n" +"Delivered Quantity: Invoiced based on the quantity the vendor delivered " +"(time or deliveries)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_outgoing_qty +msgid "Outgoing" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_outstanding_credits_debits_widget +msgid "Outstanding credits debits widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_owner_id +msgid "Owner" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_pack_ids +msgid "Pack" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_package_ids +msgid "Packages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_packaging +msgid "Packaging" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 +#: selection:magento.store,create_invoice_on:0 msgid "Paid" msgstr "" #. module: connector_magento -#: field:magento.sale.order,magento_parent_id:0 -msgid "Parent Magento Order" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reconciled +msgid "Paid/Reconciled" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_id +msgid "Parent Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_magento_parent_id +msgid "Parent Magento Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_parent_id +msgid "Parent Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_name +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_name +msgid "Parent name" +msgstr "" + +#. module: connector_magento +#: selection:magento.stock.picking,picking_method:0 +msgid "Partial" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_partner_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_partner_id +msgid "Partner" +msgstr "Partner" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_odoo_id +msgid "Partner Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_res_partner_category +msgid "Partner Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_partner_ids +#, fuzzy +msgid "Partners" +msgstr "Partner" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_password +msgid "Password" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit_limit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit_limit +msgid "Payable Limit" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_mode_id +msgid "Payment Mode" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_account_payment_mode +msgid "Payment Modes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_move_line_ids +msgid "Payment Move Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference_type +msgid "Payment Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_payment_term_id +msgid "Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_payment_token_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_payment_token_ids +msgid "Payment Tokens" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payment_ids +msgid "Payments" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_payments_widget +msgid "Payments widget" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_phone +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_phone +msgid "Phone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_method +msgid "Picking Method" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_id +msgid "Picking Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_ids +msgid "Picking associated to this sale" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_notify_email +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_notify_email +msgid "" +"Policy to receive emails for new messages pushed to your personal Inbox:\n" +"- Never: no emails are sent\n" +"- All Messages: for every notification you receive in your Inbox" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price +msgid "Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce +msgid "Price Reduce" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxexcl +msgid "Price Reduce Tax excl" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_reduce_taxinc +msgid "Price Reduce Tax inc" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_item_ids +msgid "Pricelist Items" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_pricelist_id +msgid "Pricelist for current sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_pricelist_item_ids +msgid "Pricelist item ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_catalog_price_tax_included +msgid "Prices include tax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_categ_id +msgid "Pricing/Primary Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_printed +msgid "Printed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_priority +msgid "Priority" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_priority +msgid "" +"Priority for this picking. Setting manually a value here would set it as " +"priority for all the moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_procurement_group_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_group_id +msgid "Procurement Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_procurement +msgid "Procurement Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_procurement_ids +msgid "Procurements" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_product +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_product_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_product_id +msgid "Product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_attribute_line_ids +msgid "Product Attributes" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_product_category +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_odoo_id +msgid "Product Category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_tmpl_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_tmpl_id +msgid "Product Template" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_type +msgid "Product Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_production +msgid "Production Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_product_variant_ids +msgid "Products" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_delivery_type +msgid "Provider" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_purchase +msgid "Purchase Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_po_id +msgid "Purchase Unit of Measure" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_qty +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom_qty +msgid "Quantity" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_qty_available +msgid "Quantity On Hand" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_incoming_qty +msgid "" +"Quantity of products that are planned to arrive.\n" +"In a context with a single Stock Location, this includes goods arriving to " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location with " +"'internal' type." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_outgoing_qty +msgid "" +"Quantity of products that are planned to leave.\n" +"In a context with a single Stock Location, this includes goods leaving this " +"Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving the Stock " +"Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods leaving any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_queue_job +msgid "Queue Job" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_expense_policy +msgid "Re-Invoice Expenses" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.magento_binding_backend_read_form_view +msgid "Read Binding information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.actions.act_window,name:connector_magento.magento_binding_backend_read_act_window +msgid "Read information from backend" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reception_count +msgid "Receipt" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "Recompute pack operation?" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/deleter.py:21 +#, python-format +msgid "Record %s deleted on Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/importer.py:189 +#, python-format +msgid "Record does no longer exist in Magento" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/components/exporter.py:370 +#, python-format +msgid "Record exported with ID %s on Magento." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_name +msgid "Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_origin +msgid "Reference of the document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_origin +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_origin +msgid "Reference of the document that produced this invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_name +msgid "Reference/Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_parent_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_parent_id +msgid "Related Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_pack_operation_ids +msgid "Related Packing Operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_related_backorder_ids +msgid "Related backorders" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_company_signed +msgid "Remaining amount due in the currency of the company." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual_signed +msgid "Remaining amount due in the currency of the invoice." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_residual +msgid "Remaining amount due." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/common.py:137 +#, python-format +msgid "Reopen sales order %s" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_nbr_reordering_rules +msgid "Reordering Rules" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_max_qty +msgid "Reordering max qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_reordering_min_qty +msgid "Reordering min qty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_parent_right +msgid "Right Parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_parent_right +msgid "Right parent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_route_id +msgid "Route" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_route_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_route_ids +msgid "Routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_rule_group +msgid "Rule group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_description_sale +msgid "Sale Description" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_odoo_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_sale_id +msgid "Sale Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_odoo_id +msgid "Sale Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_sale_prefix +msgid "Sale Prefix" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_list_price +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_lst_price +msgid "Sale Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_product_pricelist +msgid "Sale Pricelist" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_workflow_process_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_workflow_process_id +msgid "Sale Workflow Process" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:54 +#, python-format +msgid "Sale is not linked with a Magento sales order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_order_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_sale_warn +msgid "Sales Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_sale_order_line +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sale_line_warn +msgid "Sales Order Line" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_team_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_team_id +msgid "Sales Team" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_salesman_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_user_id +msgid "Salesperson" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_min_date +msgid "Scheduled Date" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_min_date +msgid "" +"Scheduled time for the first part of the shipment to be processed. Setting " +"manually a value here would set it as expected date for all the stock moves." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_max_date +msgid "Scheduled time for the last part of the shipment to be processed" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_layout_category_id +msgid "Section" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_categ_id +msgid "Select category for the current product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_customer_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_customer_payment_mode_id +msgid "Select the default payment mode for this customer." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Select the default payment mode for this supplier." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_address_sale_warn +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_line_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_invoice_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_sale_warn +msgid "" +"Selecting the \"Warning\" option will notify user with the message, " +"Selecting \"Blocking Message\" will throw an exception with the message and " +"block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_self +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_self +msgid "Self" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0" +msgstr "" + +#. module: connector_magento +#: selection:magento.product.product,backorders:0 +msgid "Sell Quantity < 0 and Use Customer Notification" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_invoice_paid_mail +msgid "Send email notification on invoice validated/paid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_send_picking_done_mail +msgid "Send email notification on picking done" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_sent +msgid "Sent" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_sequence +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_sequence +msgid "Sequence" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_removal_strategy_id +msgid "" +"Set a specific removal strategy that will be used regardless of the source " +"location for this product category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_partner_share +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_partner_share +#, fuzzy +msgid "Share Partner" +msgstr "Magento partner" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_price +msgid "Shipping Cost" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/exporter.py:25 +#, python-format +msgid "Shipping Created" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_picking_policy +msgid "Shipping Policy" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_account_payment_mode_create_invoice_on +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"If nothing is set, the option falls back to the same option on the Magento " +"store related to the sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_store_create_invoice_on +msgid "" +"Should the invoice be created in Magento when it is validated or when it is " +"paid in Odoo?\n" +"This only takes effect if the sales order's related payment method is not " +"giving an option for this by itself. (See Payment Methods)" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_type +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_type +msgid "Signup Token Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_valid +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_valid +msgid "Signup Token is Valid" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_url +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_url +msgid "Signup URL" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_expiration +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_expiration +msgid "Signup expiration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_signup_token +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_signup_token +msgid "Signup token" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_small +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_image_small +msgid "Small-sized image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_image_small +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image_small +msgid "" +"Small-sized image of this contact. It is automatically resized as a 64x64px " +"image, with aspect ratio preserved. Use this field anywhere a small image is " +"required." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_sort_order +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_sort_order +msgid "Sort Order" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_origin +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_origin +msgid "Source Document" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_location_id +msgid "Source Location Zone" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_account_analytic_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_account_analytic_id +msgid "Specific analytic account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_fiscal_position_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_fiscal_position_id +msgid "Specific fiscal position" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_specific_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_specific_warehouse_id +msgid "Specific warehouse" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_ok +msgid "Specify if the product can be selected in a sales order line." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +" Average Price: The cost price is recomputed at each incoming " +"shipment and used for the product valuation.\n" +" Real Price: The cost price displayed is the price of the " +"last outgoing product (will be use in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_cost_method +msgid "" +"Standard Price: The cost price is manually updated at the end of a specific " +"period (usually once a year).\n" +"Average Price: The cost price is recomputed at each incoming shipment and " +"used for the product valuation.\n" +"Real Price: The cost price displayed is the price of the last outgoing " +"product (will be used in case of inventory loss for example)." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_hs_code +msgid "Standardized code for international shipping and goods declaration" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_state_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_binding_backend_read_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_state_id +msgid "State" +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/sale_order/exporter.py:51 +#, python-format +msgid "State %s is not exported." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_state +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_state +msgid "Status" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_product_stock_field_id +msgid "Stock Field" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_input +msgid "Stock Input Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_journal +msgid "Stock Journal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_move_lines +msgid "Stock Moves" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_property_stock_account_output +msgid "Stock Output Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_picking_warn +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_odoo_id +msgid "Stock Picking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "Stock Valuation Account" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_move_ids +msgid "Stock move ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_stock_quant_ids +msgid "Stock quant ids" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_store_id +msgid "Store" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_store_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_store +#: model:ir.ui.view,arch_db:connector_magento.view_magento_website_form +msgid "Stores" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_store_id +msgid "Storeview" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_storeview_ids +#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview +#: model:ir.ui.view,arch_db:connector_magento.view_magento_store_form +msgid "Storeviews" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street +msgid "Street" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_street2 +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_street2 +msgid "Street2" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_subtotal +msgid "Subtotal" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_supplier_payment_mode_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_supplier_payment_mode_id +msgid "Supplier Payment Mode" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form +msgid "Synchronize Metadata" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_vat +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_vat +msgid "TIN" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_name +msgid "Tag Name" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_category_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_id +msgid "Tags" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_tax +msgid "Tax" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_category_tax_class_id +msgid "Tax Class ID" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax Group" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_vat +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_vat +msgid "" +"Tax Identification Number. Fill it if the company is subjected to taxes. " +"Used by the some of the legal statements." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_tax_line_ids +msgid "Tax Lines" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_rate +msgid "Tax Rate" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_tax_group_id +msgid "Tax groups are used with some external system like Prestashop" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_tax +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_tax_id +msgid "Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_move_name +msgid "" +"Technical field holding the number given to the invoice, automatically set " +"when the invoice is validated then stored to set the same number again if " +"the invoice is cancelled, set to draft and re-validated." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_pricelist_id +msgid "" +"Technical field. Used for searching on pricelists, not stored in database." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_move_ids +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_stock_quant_ids +msgid "Technical: used to compute quantities." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_note +msgid "Terms and conditions" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_category_active +msgid "The active field allows you to hide the category without removing it." +msgstr "" + +#. module: connector_magento +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount +msgid "" +"The amount computed in Odoo doesn't match with the amount in Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_project_id +#: model:ir.model.fields,help:connector_magento.field_magento_sale_order_related_project_id +msgid "The analytic account related to a sales order." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_sale_delay +msgid "" +"The average delay in days between the confirmation of the customer order and " +"the delivery of the finished products. It's the time you promise to your " +"customers." +msgstr "" + +#. module: connector_magento +#: code:addons/connector_magento/models/stock_picking/tracking_exporter.py:60 +#, python-format +msgid "The carrier %s does not export tracking numbers." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_commercial_partner_id +msgid "" +"The commercial entity that will be used on Journal Entries for this invoice" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_company_id +msgid "The company is automatically set from your user preferences." msgstr "" #. module: connector_magento -#: selection:magento.stock.picking,picking_method:0 -msgid "Partial" +#: code:addons/connector_magento/models/product/importer.py:296 +#, python-format +msgid "" +"The configurable product is not imported in Odoo, because only the simple " +"products are used in the sales orders." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner -#: field:magento.address,openerp_id:0 field:magento.res.partner,openerp_id:0 -msgid "Partner" -msgstr "Partner" +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_custom_api_path +msgid "" +"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a " +"custom API path, in that case, the location has to be completed with the " +"custom API path " +msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,openerp_id:0 -msgid "Partner Category" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_position_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_position_id +msgid "" +"The fiscal position will determine taxes and accounts used for the partner." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_res_partner_category -msgid "Partner Tags" +#: model:ir.model.fields,help:connector_magento.field_magento_address_user_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_user_id +msgid "" +"The internal user that is in charge of communicating with this contact if " +"any." msgstr "" #. module: connector_magento -#: field:magento.backend,password:0 -msgid "Password" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_name +msgid "The name that will be used on account move lines" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_payment_method -msgid "Payment Method" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_product_count +msgid "" +"The number of products under this category (Does not consider the children " +"categories)" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_stock_picking -msgid "Picking List" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_account_id +msgid "The partner account used for this invoice." msgstr "" #. module: connector_magento -#: field:magento.stock.picking,picking_method:0 -msgid "Picking Method" +#: model:ir.model.fields,help:connector_magento.field_magento_address_has_unreconciled_entries +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_has_unreconciled_entries +msgid "" +"The partner has at least one unreconciled debit and credit since last time " +"the invoices & payments matching was performed." msgstr "" #. module: connector_magento -#: field:connector.config.settings,module_connector_magento_pricing:0 -msgid "Prices are managed in OpenERP with pricelists" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_reference +msgid "The partner reference of this invoice." msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_pricing:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_tz +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_tz msgid "" -"Prices are set in OpenERP and exported to Magento.\n" -"\n" -"This installs the module connector_magento_pricing." +"The partner's timezone, used to output proper date and time values inside " +"printed reports. It is important to set a value for this field. You should " +"use the same timezone that is otherwise used to pick and render date and " +"time values: your computer's timezone." msgstr "" #. module: connector_magento -#: field:magento.storeview,catalog_price_tax_included:0 -msgid "Prices include tax" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_lst_price +msgid "" +"The sale price is managed from the product template. Click on the 'Variant " +"Prices' button to set the extra attribute prices." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_product -#: field:magento.product.product,openerp_id:0 -msgid "Product" +#: model:exception.rule,description:connector_magento.excep_wrong_total_amount_tax +msgid "" +"The tax amount computed in Odoo doesn't match with the tax amount in " +"Magento.\n" +"\n" +"Cause:\n" +"The taxes are probably different between Odoo and Magento. A fiscal position " +"could have changed the final price.\n" +"\n" +"Resolution:\n" +"Check your taxes and fiscal positions configuration and correct them if " +"necessary." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_product_category -#: field:magento.product.category,openerp_id:0 -msgid "Product Category" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_volume +msgid "The volume in m3." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/delete_synchronizer.py:38 -#, python-format -msgid "Record %s deleted on Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_weight +msgid "The weight of the contents in Kg, not including any packaging, etc." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/import_synchronizer.py:199 +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:41 #, python-format -msgid "Record does no longer exist in Magento" +msgid "The wizard must be launched from a magento backend model" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/unit/export_synchronizer.py:414 +#: code:addons/connector_magento/wizards/magento_binding_backend_read.py:45 #, python-format -msgid "Record exported with ID %s on Magento." +msgid "The wizard must be launched on a single magento backend instance" msgstr "" #. module: connector_magento -#: field:magento.sale.order,openerp_id:0 -msgid "Sale Order" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_expense_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"expenses for the current product." msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,openerp_id:0 -msgid "Sale Order Line" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_account_income_id +msgid "" +"This account will be used for invoices instead of the default one to value " +"sales for the current product." msgstr "" #. module: connector_magento -#: field:magento.backend,sale_prefix:0 -msgid "Sale Prefix" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_expense_categ_id +msgid "This account will be used for invoices to value expenses." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1075 -#, python-format -msgid "Sale is not linked with a Magento sales order" +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_account_income_categ_id +msgid "This account will be used for invoices to value sales." msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order -msgid "Sales Order" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_payable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_payable_id +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" msgstr "" #. module: connector_magento -#: model:ir.model,name:connector_magento.model_sale_order_line -msgid "Sales Order Line" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_account_receivable_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_account_receivable_id +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" msgstr "" #. module: connector_magento -#: field:magento.storeview,section_id:0 -msgid "Sales Team" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_delivery_carrier_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_delivery_carrier_id +msgid "This delivery method will be used when invoicing from picking." msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0" +#: model:ir.model.fields,help:connector_magento.field_magento_address_image +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_image +msgid "" +"This field holds the image used as avatar for this contact, limited to " +"1024x1024px" msgstr "" #. module: connector_magento -#: selection:magento.product.product,backorders:0 -msgid "Sell Quantity < 0 and Use Customer Notification" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_image_variant +msgid "" +"This field holds the image used as image for the product variant, limited to " +"1024x1024px." msgstr "" #. module: connector_magento -#: field:magento.store,send_invoice_paid_mail:0 -msgid "Send email notification on invoice validated/paid" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_price_extra +msgid "This is the sum of the extra price of all attributes" msgstr "" #. module: connector_magento -#: field:magento.store,send_picking_done_mail:0 -msgid "Send email notification on picking done" +#: model:ir.ui.view,arch_db:connector_magento.view_magento_storeview_form +msgid "" +"This option should respect the same\n" +" configuration as Magento. Pay\n" +" attention to the taxes on the products,\n" +" which should surely include prices when\n" +" this option is activated." msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_picking.py:126 -#: code:addons/connector_magento/tests/test_export_picking.py:89 -#: code:addons/connector_magento/tests/test_export_picking.py:135 -#: code:addons/connector_magento/tests/test_export_picking.py:169 -#, python-format -msgid "Shipping Created" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "" +"This payment term will be used instead of the default one for purchase " +"orders and vendor bills" msgstr "" #. module: connector_magento -#: help:payment.method,create_invoice_on:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_payment_term_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_payment_term_id msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"If nothing is set, the option falls back to the same option on the Magento store related to the sales order." +"This payment term will be used instead of the default one for sale orders " +"and customer invoices" msgstr "" #. module: connector_magento -#: help:magento.store,create_invoice_on:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_product_pricelist +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_product_pricelist msgid "" -"Should the invoice be created in Magento when it is validated or when it is paid in OpenERP?\n" -"This only takes effect if the sales order's related payment method is not giving an option for this by itself. (See Payment Methods)" +"This pricelist will be used, instead of the default one, for sales to the " +"current partner" msgstr "" #. module: connector_magento -#: field:magento.storeview,sort_order:0 field:magento.website,sort_order:0 -msgid "Sort Order" +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_customer +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_customer +msgid "" +"This stock location will be used, instead of the default one, as the " +"destination location for goods you send to this partner" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/sale.py:1072 -#, python-format -msgid "State %s is not exported." +#: model:ir.model.fields,help:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for goods you receive from the current partner" msgstr "" #. module: connector_magento -#: field:magento.backend,product_stock_field_id:0 -msgid "Stock Field" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_production +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by manufacturing orders." msgstr "" #. module: connector_magento -#: field:magento.stock.picking,openerp_id:0 -msgid "Stock Picking" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_procurement +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated by procurements." msgstr "" #. module: connector_magento -#: field:magento.storeview,store_id:0 -msgid "Store" +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_inventory +msgid "" +"This stock location will be used, instead of the default one, as the source " +"location for stock moves generated when you do an inventory." msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_store -#: view:magento.website:connector_magento.view_magento_website_form -#: field:magento.website,store_ids:0 -msgid "Stores" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz +msgid "Timezone" msgstr "" #. module: connector_magento -#: model:ir.ui.menu,name:connector_magento.menu_magento_storeview -#: view:magento.store:connector_magento.view_magento_store_form -#: field:magento.store,storeview_ids:0 -msgid "Storeviews" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_tz_offset +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_tz_offset +msgid "Timezone offset" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form -msgid "Synchronize Metadata" +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_title +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_title +msgid "Title" msgstr "" #. module: connector_magento -#: field:magento.res.partner.category,tax_class_id:0 -msgid "Tax Class ID" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_qty_to_invoice +msgid "To Invoice" msgstr "" #. module: connector_magento -#: field:magento.sale.order.line,tax_rate:0 -msgid "Tax Rate" +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_total +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_total +msgid "Total" msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount -msgid "" -"The amount computed in OpenERP doesn't match with the amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount +msgid "Total Amount differs from Magento" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/stock_tracking.py:80 -#, python-format -msgid "The carrier %s does not export tracking numbers." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_total_invoiced +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_total_invoiced +msgid "Total Invoiced" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/product.py:558 -#, python-format -msgid "" -"The configurable product is not imported in OpenERP, because only the simple" -" products are used in the sales orders." +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_debit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_debit +msgid "Total Payable" msgstr "" #. module: connector_magento -#: help:magento.backend,use_custom_api_path:0 -msgid "" -"The default API path is '/index.php/api/xmlrpc'. Check this box if you use a" -" custom API path, in that case, the location has to be completed with the " -"custom API path " +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_credit +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_credit +msgid "Total Receivable" msgstr "" #. module: connector_magento -#: model:sale.exception,description:connector_magento.excep_wrong_total_amount_tax -msgid "" -"The tax amount computed in OpenERP doesn't match with the tax amount in Magento.\n" -"\n" -"Cause:\n" -"The taxes are probably different between OpenERP and Magento. A fiscal position could have changed the final price.\n" -"\n" -"Resolution:\n" -"Check your taxes and fiscal positions configuration and correct them if necessary." +#: model:exception.rule,name:connector_magento.excep_wrong_total_amount_tax +msgid "Total Tax Amount differs from Magento" msgstr "" #. module: connector_magento -#: help:connector.config.settings,module_connector_magento_export_partner:0 -msgid "This installs the module connector_magento_export_partner." +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount +msgid "Total amount" msgstr "" #. module: connector_magento -#: view:magento.storeview:connector_magento.view_magento_storeview_form -msgid "" -"This option should respect the same\n" -" configuration as Magento. Pay\n" -" attention to the taxes on the products,\n" -" which should surely include prices when\n" -" this option is activated." +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total amount in the currency of the company, negative for credit notes." msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount -msgid "Total Amount differs from Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total amount in the currency of the invoice, negative for credit notes." msgstr "" #. module: connector_magento -#: model:sale.exception,name:connector_magento.excep_wrong_total_amount_tax -msgid "Total Tax Amount differs from Magento" +#: model:ir.model.fields,help:connector_magento.field_magento_address_credit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_credit +msgid "Total amount this customer owes you." msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount:0 -msgid "Total amount" +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_total_amount_tax +msgid "Total amount w. tax" msgstr "" #. module: connector_magento -#: field:magento.sale.order,total_amount_tax:0 -msgid "Total amount w. tax" +#: model:ir.model.fields,help:connector_magento.field_magento_address_debit +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_debit +msgid "Total amount you have to pay to this vendor." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_company_signed +msgid "Total in Company Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_total_signed +msgid "Total in Invoice Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_category_total_route_ids +msgid "Total routes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_track_service +msgid "Track Service" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_tracking +msgid "Tracking" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_carrier_tracking_ref +msgid "Tracking Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_stock_picking +msgid "Transfer" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_recompute_pack_op +msgid "" +"True if reserved quants changed, which mean we might need to recompute the " +"package operations" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_type +msgid "Type" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_picking_type_code +msgid "Type of Operation" msgstr "" #. module: connector_magento -#: code:addons/connector_magento/magento_model.py:575 +#: code:addons/connector_magento/models/magento_website/importer.py:22 #, python-format msgid "Undefined" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_price_unit +msgid "Unit Price" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_uom_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_line_product_uom +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of Measure" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_stock_picking_weight_uom_id +msgid "Unit of measurement for Weight" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread +msgid "Unread Messages" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_message_unread_counter +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_message_unread_counter +msgid "Unread Messages Counter" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_amount_untaxed +msgid "Untaxed Amount" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_amount_untaxed_signed +msgid "Untaxed Amount in Company Currency" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Update" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Update all the products stock quantities" msgstr "" #. module: connector_magento -#: field:magento.address,updated_at:0 -#: field:magento.product.product,updated_at:0 -#: field:magento.res.partner,updated_at:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_updated_at +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_updated_at msgid "Updated At (on Magento)" msgstr "" #. module: connector_magento -#: help:magento.backend,location:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_location msgid "Url to magento application" msgstr "" @@ -1198,12 +4162,12 @@ msgid "Use Default Config" msgstr "" #. module: connector_magento -#: field:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_use_auth_basic msgid "Use HTTP Auth Basic" msgstr "" #. module: connector_magento -#: help:magento.backend,use_auth_basic:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_use_auth_basic msgid "" "Use a Basic Access Authentication for the API. The Magento server could be " "configured to restrict access using a HTTP authentication based on a " @@ -1211,71 +4175,256 @@ msgid "" msgstr "" #. module: connector_magento -#: field:magento.backend,username:0 +#: model:ir.model.fields,help:connector_magento.field_magento_address_type +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_type +msgid "" +"Used to select automatically the right address according to the context in " +"sales and purchases documents." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_username msgid "Username" msgstr "" #. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_user_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_user_ids +msgid "Users" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_currency_id +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_currency_id +msgid "Utility field to express amount currency" +msgstr "" + +#. module: connector_magento +#: selection:account.payment.mode,create_invoice_on:0 #: selection:magento.store,create_invoice_on:0 -#: selection:payment.method,create_invoice_on:0 msgid "Validate" msgstr "" #. module: connector_magento -#: field:magento.backend,version:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_valuation +msgid "Valuation" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_image_variant +msgid "Variant Image" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_price_extra +msgid "Variant Price Extra" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_stock_supplier +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_stock_supplier +msgid "Vendor Location" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_property_supplier_payment_term_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_property_supplier_payment_term_id +msgid "Vendor Payment Terms" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_account_invoice_reference +msgid "Vendor Reference" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_supplier_taxes_id +msgid "Vendor Taxes" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_seller_ids +msgid "Vendors" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_version msgid "Version" msgstr "" #. module: connector_magento -#: field:magento.backend,warehouse_id:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_volume +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_volume +msgid "Volume" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_sale_order_warehouse_id msgid "Warehouse" msgstr "" #. module: connector_magento -#: help:magento.backend,warehouse_id:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_warehouse_id msgid "Warehouse used to compute the stock quantities." msgstr "" #. module: connector_magento -#: help:magento.backend,password:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_warranty +msgid "Warranty" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_backend_password msgid "Webservice password" msgstr "" #. module: connector_magento -#: help:magento.backend,username:0 +#: model:ir.model.fields,help:connector_magento.field_magento_backend_username msgid "Webservice user" msgstr "" #. module: connector_magento -#: field:magento.backend,website_ids:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_website +#: model:ir.model.fields,field_description:connector_magento.field_magento_backend_website_ids +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_website msgid "Website" msgstr "" #. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_address_website +#: model:ir.model.fields,help:connector_magento.field_magento_res_partner_website +msgid "Website of Partner or Company" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_website_ids #: model:ir.ui.menu,name:connector_magento.menu_magento_website -#: view:magento.backend:connector_magento.view_magento_backend_form -#: field:magento.product.product,website_ids:0 +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "Websites" msgstr "" #. module: connector_magento -#: help:magento.storeview,import_orders_from_date:0 +#: model:ir.model.fields,field_description:connector_magento.field_magento_product_product_weight +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_weight +msgid "Weight" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_stock_picking_shipping_weight +msgid "Weight for Shipping" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_input_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. This is the default " +"value for all products in this category. It can also directly be set on each " +"product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_input +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"incoming stock moves will be posted in this account, unless there is a " +"specific valuation account set on the source location. When not set on the " +"product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_account_output_categ_id +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. This is the " +"default value for all products in this category. It can also directly be set " +"on each product" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_product_property_stock_account_output +msgid "" +"When doing real-time inventory valuation, counterpart journal items for all " +"outgoing stock moves will be posted in this account, unless there is a " +"specific valuation account set on the destination location. When not set on " +"the product, the one from the product category is used." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_journal +msgid "" +"When doing real-time inventory valuation, this is the Accounting Journal in " +"which entries will be automatically posted when stock moves are processed." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_product_category_property_stock_valuation_account_id +msgid "" +"When real-time inventory valuation is enabled on a product, this account " +"will hold the current value of the products." +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_address_zip +#: model:ir.model.fields,field_description:connector_magento.field_magento_res_partner_zip +msgid "Zip" +msgstr "" + +#. module: connector_magento +#: selection:magento.binding.backend.read,state:0 +msgid "choose" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,help:connector_magento.field_magento_storeview_import_orders_from_date msgid "" "do not consider non-imported sale orders before this date. Leave empty to " "import all sale orders" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "e.g. http://my.magento.com/admin" msgstr "" #. module: connector_magento -#: view:magento.backend:connector_magento.view_magento_backend_form +#: selection:magento.binding.backend.read,state:0 +msgid "get" +msgstr "" + +#. module: connector_magento +#: model:ir.ui.view,arch_db:connector_magento.view_magento_backend_form msgid "mag-" msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_binding_backend_read +msgid "magento.binding.backend.read" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_config_specializer +msgid "magento.config.specializer" +msgstr "" + +#. module: connector_magento +#: model:ir.model,name:connector_magento.model_magento_res_partner_category +msgid "magento.res.partner.category" +msgstr "" + +#. module: connector_magento +#: model:ir.model.fields,field_description:connector_magento.field_magento_config_specializer_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_store_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_storeview_warehouse_id +#: model:ir.model.fields,field_description:connector_magento.field_magento_website_warehouse_id +msgid "warehouse" +msgstr "" From 4ef44c4b2713ffed8e2ef0df46067c632d8bbf10 Mon Sep 17 00:00:00 2001 From: Hugo Santos Date: Tue, 6 Mar 2018 17:59:37 +0100 Subject: [PATCH 24/31] [MIG] connector_magento to v11 --- connector_magento/README.rst | 2 +- connector_magento/__manifest__.py | 2 +- .../components/backend_adapter.py | 6 +- connector_magento/components/importer.py | 6 +- .../data/connector_magento_data.xml | 38 +++---- connector_magento/doc/conf.py | 16 +-- .../models/account_invoice/common.py | 4 +- .../models/account_invoice/exporter.py | 4 +- .../models/magento_backend/common.py | 16 +-- connector_magento/models/partner/common.py | 4 +- connector_magento/models/partner/importer.py | 3 +- connector_magento/models/product/common.py | 8 +- connector_magento/models/product/importer.py | 21 ++-- .../models/product_category/common.py | 4 +- .../models/product_category/importer.py | 2 +- connector_magento/models/sale_order/common.py | 4 +- .../models/sale_order/importer.py | 14 +-- .../models/stock_picking/common.py | 4 +- .../models/stock_picking/exporter.py | 4 +- connector_magento/tests/common.py | 28 ++--- .../tests/test_concurrent_sync.py | 4 +- .../tests/test_export_invoice.py | 10 +- .../tests/test_export_picking.py | 102 ++++++++++++------ .../tests/test_export_product_stock.py | 13 ++- .../tests/test_import_partner.py | 4 +- .../tests/test_import_product_image.py | 24 +++-- .../tests/test_related_action.py | 6 +- connector_magento/tests/test_sale_order.py | 23 ++-- 28 files changed, 210 insertions(+), 166 deletions(-) diff --git a/connector_magento/README.rst b/connector_magento/README.rst index d3fa32ae0..1cc90de33 100644 --- a/connector_magento/README.rst +++ b/connector_magento/README.rst @@ -8,7 +8,7 @@ Magento Connector This is the new release of the Open-Source connector linking Odoo and Magento also known under the name of **Magentoerpconnect**. It is -build on top of the `connector`_ framework. It is is structured so that +build on top of the `connector`_ framework. It is structured so that it can be extended or modified easily from separate addons, a factor of success when the implementations of Magento vary a lot. diff --git a/connector_magento/__manifest__.py b/connector_magento/__manifest__.py index 2678f8584..4bd35252d 100644 --- a/connector_magento/__manifest__.py +++ b/connector_magento/__manifest__.py @@ -4,7 +4,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). {'name': 'Magento Connector', - 'version': '10.0.1.0.0', + 'version': '11.0.1.0.0', 'category': 'Connector', 'depends': ['account', 'base_technical_user', diff --git a/connector_magento/components/backend_adapter.py b/connector_magento/components/backend_adapter.py index 1012dad7d..11479365c 100644 --- a/connector_magento/components/backend_adapter.py +++ b/connector_magento/components/backend_adapter.py @@ -4,7 +4,7 @@ import socket import logging -import xmlrpclib +import xmlrpc.client from odoo.addons.component.core import AbstractComponent from odoo.addons.queue_job.exception import RetryableJobError @@ -90,7 +90,7 @@ def call(self, method, arguments): start = datetime.now() try: result = self.api.call(method, arguments) - except: + except Exception: _logger.error("api.call('%s', %s) failed", method, arguments) raise else: @@ -104,7 +104,7 @@ def call(self, method, arguments): raise NetworkRetryableError( 'A network error caused the failure of the job: ' '%s' % err) - except xmlrpclib.ProtocolError as err: + except xmlrpc.client.ProtocolError as err: if err.errcode in [502, # Bad gateway 503, # Service unavailable 504]: # Gateway timeout diff --git a/connector_magento/components/importer.py b/connector_magento/components/importer.py index 26f31381b..a47adac6f 100644 --- a/connector_magento/components/importer.py +++ b/connector_magento/components/importer.py @@ -305,7 +305,7 @@ def run(self, external_id, binding, mapper=None): # find the translatable fields of the model fields = self.model.fields_get() - translatable_fields = [field for field, attrs in fields.iteritems() + translatable_fields = [field for field, attrs in list(fields.items()) if attrs.get('translate')] if mapper is None: @@ -316,9 +316,9 @@ def run(self, external_id, binding, mapper=None): for storeview in lang_storeviews: lang_record = self._get_magento_data(storeview.external_id) map_record = mapper.map_record(lang_record) - record = map_record.values() + record = list(map_record.values()) - data = dict((field, value) for field, value in record.iteritems() + data = dict((field, value) for field, value in list(record.items()) if field in translatable_fields) binding.with_context(connector_no_export=True, diff --git a/connector_magento/data/connector_magento_data.xml b/connector_magento/data/connector_magento_data.xml index dc35b11b7..7ca6461ab 100644 --- a/connector_magento/data/connector_magento_data.xml +++ b/connector_magento/data/connector_magento_data.xml @@ -13,9 +13,9 @@ days -1 - - - + + code + model._scheduler_import_sale_orders() @@ -26,9 +26,9 @@ days -1 - - - + + code + model._scheduler_import_customer_groups() @@ -39,9 +39,9 @@ days -1 - - - + + code + model._scheduler_import_partners() @@ -52,11 +52,11 @@ days -1 - - - + + code + model._scheduler_import_product_categories() - + Magento - Import Products @@ -65,9 +65,9 @@ days -1 - - - + + code + model._scheduler_import_product_product() @@ -78,9 +78,9 @@ hours -1 - - - + + code + model._scheduler_update_product_stock_qty() diff --git a/connector_magento/doc/conf.py b/connector_magento/doc/conf.py index 519fc0305..c73c69591 100644 --- a/connector_magento/doc/conf.py +++ b/connector_magento/doc/conf.py @@ -131,8 +131,8 @@ def add_path(*paths): master_doc = 'index' # General information about the project. -project = u'Odoo Magento Connector' -copyright = u'2013-2015, Odoo Community Association (OCA)' +project = 'Odoo Magento Connector' +copyright = '2013-2015, Odoo Community Association (OCA)' # The version info for the project you're documenting, acts as # replacement for |version| and |release|, also used in various other @@ -320,8 +320,8 @@ def add_path(*paths): # start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'odoo-magento-connector.tex', - u'Odoo Magento Connector Documentation', - u'Odoo Community Association (OCA)', 'manual'), + 'Odoo Magento Connector Documentation', + 'Odoo Community Association (OCA)', 'manual'), ] # The name of an image file (relative to this directory) to place at the @@ -351,8 +351,8 @@ def add_path(*paths): # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'odoo-magento-connector', - u'Odoo Magento Connector Documentation', - [u'Odoo Community Association (OCA)'], 1) + 'Odoo Magento Connector Documentation', + ['Odoo Community Association (OCA)'], 1) ] # If true, show URL addresses after external links. @@ -366,8 +366,8 @@ def add_path(*paths): # dir menu entry, description, category) texinfo_documents = [ ('index', 'Odoo Magento Connector', - u'Odoo Magento Connector Documentation', - u'Odoo Community Association (OCA)', 'Odoo Magento Connector', + 'Odoo Magento Connector Documentation', + 'Odoo Community Association (OCA)', 'Odoo Magento Connector', 'Connector between Odoo and Magento', 'Miscellaneous'), ] diff --git a/connector_magento/models/account_invoice/common.py b/connector_magento/models/account_invoice/common.py index 659423d5b..c6b9ceddc 100644 --- a/connector_magento/models/account_invoice/common.py +++ b/connector_magento/models/account_invoice/common.py @@ -4,7 +4,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import logging -import xmlrpclib +import xmlrpc.client from odoo import api, models, fields from odoo.addons.component.core import Component from odoo.addons.queue_job.job import job, related_action @@ -70,7 +70,7 @@ class AccountInvoiceAdapter(Component): def _call(self, method, arguments): try: return super(AccountInvoiceAdapter, self)._call(method, arguments) - except xmlrpclib.Fault as err: + except xmlrpc.client.Fault as err: # this is the error in the Magento API # when the invoice does not exist if err.faultCode == 100: diff --git a/connector_magento/models/account_invoice/exporter.py b/connector_magento/models/account_invoice/exporter.py index a9ac873e0..a161879d7 100644 --- a/connector_magento/models/account_invoice/exporter.py +++ b/connector_magento/models/account_invoice/exporter.py @@ -4,7 +4,7 @@ import logging -import xmlrpclib +import xmlrpc.client from odoo import _ from odoo.addons.component.core import Component @@ -70,7 +70,7 @@ def run(self, binding): external_id = self._export_invoice(magento_order.external_id, lines_info, mail_notification) - except xmlrpclib.Fault as err: + except xmlrpc.client.Fault as err: # When the invoice is already created on Magento, it returns: # # We'll search the Magento invoice ID to store it in Odoo diff --git a/connector_magento/models/magento_backend/common.py b/connector_magento/models/magento_backend/common.py index 4a37d90c8..0e04cea68 100644 --- a/connector_magento/models/magento_backend/common.py +++ b/connector_magento/models/magento_backend/common.py @@ -9,9 +9,10 @@ from datetime import datetime, timedelta from odoo import models, fields, api, _ +from odoo.tools import ustr from odoo.exceptions import UserError -from odoo.addons.connector.checkpoint import checkpoint +from odoo.addons.connector.models.checkpoint import add_checkpoint from ...components.backend_adapter import MagentoLocation, MagentoAPI _logger = logging.getLogger(__name__) @@ -42,6 +43,7 @@ def _get_stock_field_id(self): limit=1) return field + name = fields.Char(string='Name', required=True) version = fields.Selection(selection='select_versions', required=True) location = fields.Char( string='Location', @@ -213,8 +215,8 @@ def work_on(self, model_name, **kwargs): def add_checkpoint(self, record): self.ensure_one() record.ensure_one() - return checkpoint.add_checkpoint(self.env, record._name, record.id, - self._name, self.id) + return add_checkpoint(self.env, record._name, record.id, + self._name, self.id) @api.multi def synchronize_metadata(self): @@ -229,11 +231,11 @@ def synchronize_metadata(self): self.env[model_name].import_batch(backend) return True except Exception as e: - _logger.error(e.message, exc_info=True) + _logger.error(ustr(e)) raise UserError( - _(u"Check your configuration, we can't get the data. " - u"Here is the error:\n%s") % - str(e).decode('utf-8', 'ignore')) + _("Check your configuration, we can't get the data. " + "Here is the error:\n%s") % + ustr(e)) @api.multi def import_partners(self): diff --git a/connector_magento/models/partner/common.py b/connector_magento/models/partner/common.py index 19f34d630..dd0faec60 100644 --- a/connector_magento/models/partner/common.py +++ b/connector_magento/models/partner/common.py @@ -4,7 +4,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import logging -import xmlrpclib +import xmlrpc.client from odoo import models, fields, api from odoo.addons.queue_job.job import job from odoo.addons.component.core import Component @@ -153,7 +153,7 @@ class PartnerAdapter(Component): def _call(self, method, arguments): try: return super(PartnerAdapter, self)._call(method, arguments) - except xmlrpclib.Fault as err: + except xmlrpc.client.Fault as err: # this is the error in the Magento API # when the customer does not exist if err.faultCode == 102: diff --git a/connector_magento/models/partner/importer.py b/connector_magento/models/partner/importer.py index 789f1ea8b..6478a5f3b 100644 --- a/connector_magento/models/partner/importer.py +++ b/connector_magento/models/partner/importer.py @@ -249,7 +249,6 @@ class BaseAddressImportMapper(AbstractComponent): direct = [('postcode', 'zip'), ('city', 'city'), ('telephone', 'phone'), - ('fax', 'fax'), ('company', 'company'), ] @@ -284,7 +283,7 @@ def street(self, record): if len(lines) == 1: result = {'street': lines[0], 'street2': False} elif len(lines) >= 2: - result = {'street': lines[0], 'street2': u' - '.join(lines[1:])} + result = {'street': lines[0], 'street2': ' - '.join(lines[1:])} else: result = {} return result diff --git a/connector_magento/models/product/common.py b/connector_magento/models/product/common.py index 10da819f3..5b84f1945 100644 --- a/connector_magento/models/product/common.py +++ b/connector_magento/models/product/common.py @@ -4,7 +4,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import logging -import xmlrpclib +import xmlrpc.client from collections import defaultdict @@ -19,7 +19,7 @@ def chunks(items, length): - for index in xrange(0, len(items), length): + for index in range(0, len(items), length): yield items[index:index + length] @@ -113,7 +113,7 @@ def recompute_magento_qty(self): for product in self: backends[product.backend_id].add(product.id) - for backend, product_ids in backends.iteritems(): + for backend, product_ids in list(backends.items()): self._recompute_magento_qty_backend(backend, self.browse(product_ids)) return True @@ -189,7 +189,7 @@ class ProductProductAdapter(Component): def _call(self, method, arguments): try: return super(ProductProductAdapter, self)._call(method, arguments) - except xmlrpclib.Fault as err: + except xmlrpc.client.Fault as err: # this is the error in the Magento API # when the product does not exist if err.faultCode == 101: diff --git a/connector_magento/models/product/importer.py b/connector_magento/models/product/importer.py index 937605337..7c4958e91 100644 --- a/connector_magento/models/product/importer.py +++ b/connector_magento/models/product/importer.py @@ -4,7 +4,9 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import logging -import urllib2 +import urllib.request +import urllib.error +import urllib.parse import base64 import sys @@ -78,17 +80,20 @@ def priority(image): return sorted(images, key=priority) def _get_binary_image(self, image_data): - url = image_data['url'].encode('utf8') + url = image_data['url'] try: - request = urllib2.Request(url) + request = urllib.request.Request(url) if self.backend_record.auth_basic_username \ and self.backend_record.auth_basic_password: base64string = base64.b64encode( - '%s:%s' % (self.backend_record.auth_basic_username, - self.backend_record.auth_basic_password)) - request.add_header("Authorization", "Basic %s" % base64string) - binary = urllib2.urlopen(request) - except urllib2.HTTPError as err: + ("%s:%s" % (self.backend_record.auth_basic_username, + self.backend_record.auth_basic_password) + ).encode('utf-8') + ) + request.add_header("Authorization", "Basic %s" % ( + base64string.decode('utf-8'))) + binary = urllib.request.urlopen(request) + except urllib.error.HTTPError as err: if err.code == 404: # the image is just missing, we skip it return diff --git a/connector_magento/models/product_category/common.py b/connector_magento/models/product_category/common.py index 8d3d1f181..dca32eb35 100644 --- a/connector_magento/models/product_category/common.py +++ b/connector_magento/models/product_category/common.py @@ -4,7 +4,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import logging -import xmlrpclib +import xmlrpc.client from odoo import models, fields from odoo.addons.connector.exception import IDMissingInBackend from odoo.addons.component.core import Component @@ -57,7 +57,7 @@ class ProductCategoryAdapter(Component): def _call(self, method, arguments): try: return super(ProductCategoryAdapter, self)._call(method, arguments) - except xmlrpclib.Fault as err: + except xmlrpc.client.Fault as err: # 101 is the error in the Magento API # when the category does not exist if err.faultCode == 102: diff --git a/connector_magento/models/product_category/importer.py b/connector_magento/models/product_category/importer.py index 0398d8fe6..5d8b2e519 100644 --- a/connector_magento/models/product_category/importer.py +++ b/connector_magento/models/product_category/importer.py @@ -39,7 +39,7 @@ def run(self, filters=None): base_priority = 10 def import_nodes(tree, level=0): - for node_id, children in tree.iteritems(): + for node_id, children in list(tree.items()): # By changing the priority, the top level category has # more chance to be imported before the childrens. # However, importers have to ensure that their parent is diff --git a/connector_magento/models/sale_order/common.py b/connector_magento/models/sale_order/common.py index 3cd706de0..c28667071 100644 --- a/connector_magento/models/sale_order/common.py +++ b/connector_magento/models/sale_order/common.py @@ -4,7 +4,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import logging -import xmlrpclib +import xmlrpc.client import odoo.addons.decimal_precision as dp @@ -245,7 +245,7 @@ class SaleOrderAdapter(Component): def _call(self, method, arguments): try: return super(SaleOrderAdapter, self)._call(method, arguments) - except xmlrpclib.Fault as err: + except xmlrpc.client.Fault as err: # this is the error in the Magento API # when the sales order does not exist if err.faultCode == 100: diff --git a/connector_magento/models/sale_order/importer.py b/connector_magento/models/sale_order/importer.py index 0225a2b7e..43cda9bb2 100644 --- a/connector_magento/models/sale_order/importer.py +++ b/connector_magento/models/sale_order/importer.py @@ -220,7 +220,8 @@ def _add_store_credit_line(self, map_record, values): amount = float(record['customer_balance_amount']) if amount == 0.0: return values - line_builder = self.component(usage='order.line.builder.magento.store_credit') + line_builder = self.component( + usage='order.line.builder.magento.store_credit') line_builder.price_unit = amount line = (0, 0, line_builder.get_line()) values['order_line'].append(line) @@ -233,7 +234,8 @@ def _add_rewards_line(self, map_record, values): amount = float(record['reward_currency_amount']) if amount == 0.0: return values - line_builder = self.component(usage='order.line.builder.magento.rewards') + line_builder = self.component( + usage='order.line.builder.magento.rewards') line_builder.price_unit = amount line = (0, 0, line_builder.get_line()) values['order_line'].append(line) @@ -316,10 +318,10 @@ def sales_team(self, record): return {'team_id': team.id} @mapping - def project_id(self, record): - project_id = self.options.storeview.account_analytic_id - if project_id: - return {'project_id': project_id.id} + def analytic_account_id(self, record): + analytic_account_id = self.options.storeview.account_analytic_id + if analytic_account_id: + return {'analytic_account_id': analytic_account_id.id} @mapping def fiscal_position(self, record): diff --git a/connector_magento/models/stock_picking/common.py b/connector_magento/models/stock_picking/common.py index eb520c5c1..883d822ce 100644 --- a/connector_magento/models/stock_picking/common.py +++ b/connector_magento/models/stock_picking/common.py @@ -4,7 +4,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import logging -import xmlrpclib +import xmlrpc.client from odoo import api, models, fields from odoo.addons.queue_job.job import job, related_action from odoo.addons.connector.exception import IDMissingInBackend @@ -80,7 +80,7 @@ class StockPickingAdapter(Component): def _call(self, method, arguments): try: return super(StockPickingAdapter, self)._call(method, arguments) - except xmlrpclib.Fault as err: + except xmlrpc.client.Fault as err: # this is the error in the Magento API # when the shipment does not exist if err.faultCode == 100: diff --git a/connector_magento/models/stock_picking/exporter.py b/connector_magento/models/stock_picking/exporter.py index 0d1d634a0..6ea3297a6 100644 --- a/connector_magento/models/stock_picking/exporter.py +++ b/connector_magento/models/stock_picking/exporter.py @@ -2,7 +2,7 @@ # Copyright 2013-2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) -import xmlrpclib +import xmlrpc.client import odoo from odoo import _ @@ -83,7 +83,7 @@ def run(self, binding): "found: %s" % picking_method) try: external_id = self.backend_adapter.create(*args) - except xmlrpclib.Fault as err: + except xmlrpc.client.Fault as err: # When the shipping is already created on Magento, it returns: # diff --git a/connector_magento/tests/common.py b/connector_magento/tests/common.py index a98bd78b7..37a050dd5 100644 --- a/connector_magento/tests/common.py +++ b/connector_magento/tests/common.py @@ -10,7 +10,7 @@ Helpers usable in the tests """ -import xmlrpclib +import xmlrpc.client import logging import mock @@ -50,7 +50,7 @@ def getcode(self): @contextmanager def mock_urlopen_image(): - with mock.patch('urllib2.urlopen') as urlopen: + with mock.patch('urllib.request.urlopen') as urlopen: urlopen.return_value = MockResponseImage('') yield @@ -141,7 +141,7 @@ def mock_with_delay(self): yield delayable_cls, delayable def parse_cassette_request(self, body): - args, __ = xmlrpclib.loads(body) + args, __ = xmlrpc.client.loads(body) # the first argument is a hash, we don't mind return args[1:] @@ -213,7 +213,7 @@ def assert_records(self, expected_records, records): equals = [] for expected in expected_records: for record in records: - for field, value in expected._asdict().iteritems(): + for field, value in list(expected._asdict().items()): if not getattr(record, field) == value: break else: @@ -226,32 +226,32 @@ def assert_records(self, expected_records, records): for record in equals: # same records message.append( - u' ✓ {}({})'.format( + ' ✓ {}({})'.format( model_name, - u', '.join(u'%s: %s' % (field, getattr(record, field)) for - field in fields) + ', '.join('%s: %s' % (field, getattr(record, field)) for + field in fields) ) ) for expected in not_found: # missing records message.append( - u' - {}({})'.format( + ' - {}({})'.format( model_name, - u', '.join(u'%s: %s' % (k, v) for - k, v in expected._asdict().iteritems()) + ', '.join('%s: %s' % (k, v) for + k, v in list(expected._asdict().items())) ) ) for record in records: # extra records message.append( - u' + {}({})'.format( + ' + {}({})'.format( model_name, - u', '.join(u'%s: %s' % (field, getattr(record, field)) for - field in fields) + ', '.join('%s: %s' % (field, getattr(record, field)) for + field in fields) ) ) if not_found or records: - raise AssertionError(u'Records do not match:\n\n{}'.format( + raise AssertionError('Records do not match:\n\n{}'.format( '\n'.join(message) )) diff --git a/connector_magento/tests/test_concurrent_sync.py b/connector_magento/tests/test_concurrent_sync.py index 8c384d750..0c56eb2d2 100644 --- a/connector_magento/tests/test_concurrent_sync.py +++ b/connector_magento/tests/test_concurrent_sync.py @@ -6,7 +6,7 @@ from odoo import api from odoo.tests import common -from odoo.modules.registry import RegistryManager +from odoo.modules.registry import Registry from odoo.addons.queue_job.exception import RetryableJobError from odoo.addons.component.core import WorkContext @@ -18,7 +18,7 @@ class TestConcurrentSync(MagentoTestCase): def setUp(self): super(TestConcurrentSync, self).setUp() - self.registry2 = RegistryManager.get(common.get_db_name()) + self.registry2 = Registry.registries.get(common.get_db_name()) self.cr2 = self.registry2.cursor() self.env2 = api.Environment(self.cr2, self.env.uid, {}) diff --git a/connector_magento/tests/test_export_invoice.py b/connector_magento/tests/test_export_invoice.py index 030ac48f6..c0a8036f8 100644 --- a/connector_magento/tests/test_export_invoice.py +++ b/connector_magento/tests/test_export_invoice.py @@ -42,7 +42,7 @@ def test_export_invoice_on_validate_trigger(self): self._invoice_open() self.assertEqual(self.invoice.state, 'open') - self.assertEquals(len(self.invoice.magento_bind_ids), 1) + self.assertEqual(len(self.invoice.magento_bind_ids), 1) self.assertEqual(1, delayable_cls.call_count) delay_args, delay_kwargs = delayable_cls.call_args @@ -73,7 +73,7 @@ def test_export_invoice_on_paid_trigger(self): self._pay_and_reconcile() self.assertEqual(self.invoice.state, 'paid') - self.assertEquals(len(self.invoice.magento_bind_ids), 1) + self.assertEqual(len(self.invoice.magento_bind_ids), 1) self.assertEqual(1, delayable_cls.call_count) @@ -93,7 +93,7 @@ def test_export_invoice_on_payment_mode_validate_trigger(self): self._invoice_open() self.assertEqual(self.invoice.state, 'open') - self.assertEquals(len(self.invoice.magento_bind_ids), 1) + self.assertEqual(len(self.invoice.magento_bind_ids), 1) self.assertEqual(1, delayable_cls.call_count) delay_args, delay_kwargs = delayable_cls.call_args @@ -124,7 +124,7 @@ def test_export_invoice_on_payment_mode_paid_trigger(self): self._pay_and_reconcile() self.assertEqual(self.invoice.state, 'paid') - self.assertEquals(len(self.invoice.magento_bind_ids), 1) + self.assertEqual(len(self.invoice.magento_bind_ids), 1) self.assertEqual(1, delayable_cls.call_count) @@ -154,7 +154,7 @@ def test_export_invoice_job(self): self._invoice_open() invoice_binding = self.invoice.magento_bind_ids - self.assertEquals(len(invoice_binding), 1) + self.assertEqual(len(invoice_binding), 1) with recorder.use_cassette( 'test_export_invoice') as cassette: diff --git a/connector_magento/tests/test_export_picking.py b/connector_magento/tests/test_export_picking.py index 35e71e17a..b35f755bb 100644 --- a/connector_magento/tests/test_export_picking.py +++ b/connector_magento/tests/test_export_picking.py @@ -17,28 +17,46 @@ def setUp(self): self.order_binding.ignore_exception = True # generate sale's picking self.order_binding.odoo_id.action_confirm() + # Create inventory for add stock qty to lines + # With this commit https://goo.gl/fRTLM3 the moves that where + # force-assigned are not transferred in the picking + for line in self.order_binding.odoo_id.order_line: + if line.product_id.type == 'product': + inventory = self.env['stock.inventory'].create({ + 'name': 'Inventory for line %s' % line.name, + 'filter': 'product', + 'product_id': line.product_id.id, + 'line_ids': [(0, 0, { + 'product_id': line.product_id.id, + 'product_qty': line.product_uom_qty, + 'location_id': + self.env.ref('stock.stock_location_stock').id + })] + }) + inventory.action_done() self.picking = self.order_binding.picking_ids - self.assertEquals(len(self.picking), 1) + self.assertEqual(len(self.picking), 1) magento_shop = self.picking.sale_id.magento_bind_ids[0].store_id magento_shop.send_picking_done_mail = True def test_export_complete_picking_trigger(self): """ Trigger export of a complete picking """ - self.picking.force_assign() + self.picking.action_assign() with self.mock_with_delay() as (delayable_cls, delayable): # Deliver the entire picking, a 'magento.stock.picking' # should be created, then a job is generated that will export # the picking. Here the job is not created because we mock # 'with_delay()' - self.picking.do_transfer() - self.assertEquals(self.picking.state, 'done') + self.env['stock.immediate.transfer'].create( + {'pick_ids': [(4, self.picking.id)]}).process() + self.assertEqual(self.picking.state, 'done') picking_binding = self.env['magento.stock.picking'].search( [('odoo_id', '=', self.picking.id), ('backend_id', '=', self.backend.id)], ) - self.assertEquals(1, len(picking_binding)) - self.assertEquals('complete', picking_binding.picking_method) + self.assertEqual(1, len(picking_binding)) + self.assertEqual('complete', picking_binding.picking_method) self.assertEqual(1, delayable_cls.call_count) delay_args, delay_kwargs = delayable_cls.call_args @@ -50,19 +68,20 @@ def test_export_complete_picking_trigger(self): def test_export_complete_picking_job(self): """ Exporting a complete picking """ - self.picking.force_assign() + self.picking.action_assign() with self.mock_with_delay(): # Deliver the entire picking, a 'magento.stock.picking' # should be created, then a job is generated that will export # the picking. Here the job is not created because we mock # 'with_delay()' - self.picking.do_transfer() - self.assertEquals(self.picking.state, 'done') + self.env['stock.immediate.transfer'].create( + {'pick_ids': [(4, self.picking.id)]}).process() + self.assertEqual(self.picking.state, 'done') picking_binding = self.env['magento.stock.picking'].search( [('odoo_id', '=', self.picking.id), ('backend_id', '=', self.backend.id)], ) - self.assertEquals(1, len(picking_binding)) + self.assertEqual(1, len(picking_binding)) with recorder.use_cassette( 'test_export_picking_complete') as cassette: @@ -79,31 +98,42 @@ def test_export_complete_picking_job(self): ) # Check that we have received and bound the magento ID - self.assertEquals(picking_binding.external_id, '987654321') + self.assertEqual(picking_binding.external_id, '987654321') def test_export_partial_picking_trigger(self): """ Trigger export of a partial picking """ # Prepare a partial picking # The sale order contains 2 lines with 1 product each - self.picking.force_assign() - self.picking.do_prepare_partial() - self.picking.pack_operation_ids[0].product_qty = 1 - self.picking.pack_operation_ids[1].product_qty = 0 + self.picking.action_assign() + self.picking.move_lines[0].quantity_done = 1 + self.picking.move_lines[1].quantity_done = 0 + # Remove reservation for line index 1 + self.picking.move_lines[1].move_line_ids.unlink() with self.mock_with_delay() as (delayable_cls, delayable): # Deliver the entire picking, a 'magento.stock.picking' # should be created, then a job is generated that will export # the picking. Here the job is not created because we mock # 'with_delay()' - self.picking.do_transfer() - self.assertEquals(self.picking.state, 'done') + immediate_transfer = self.env['stock.immediate.transfer'].create( + {'pick_ids': [(4, self.picking.id)]}).process() + self.assertIsInstance(immediate_transfer, dict, + 'A backorder confirmation wizard action' + ' must be created') + self.assertEqual(immediate_transfer['res_model'], + 'stock.backorder.confirmation') + # Confirm backorder creation + self.env['stock.backorder.confirmation'].browse( + immediate_transfer['res_id']).process() + + self.assertEqual(self.picking.state, 'done') picking_binding = self.env['magento.stock.picking'].search( [('odoo_id', '=', self.picking.id), ('backend_id', '=', self.backend.id)], ) - self.assertEquals(1, len(picking_binding)) - self.assertEquals('partial', picking_binding.picking_method) + self.assertEqual(1, len(picking_binding)) + self.assertEqual('partial', picking_binding.picking_method) self.assertEqual(1, delayable_cls.call_count) delay_args, delay_kwargs = delayable_cls.call_args @@ -117,23 +147,23 @@ def test_export_partial_picking_job(self): """ Exporting a partial picking """ # Prepare a partial picking # The sale order contains 2 lines with 1 product each - self.picking.force_assign() - self.picking.do_prepare_partial() - self.picking.pack_operation_ids[0].product_qty = 1 - self.picking.pack_operation_ids[1].product_qty = 0 + self.picking.action_assign() + self.picking.move_lines[0].quantity_done = 1 + self.picking.move_lines[1].quantity_done = 0 with self.mock_with_delay(): # Deliver the entire picking, a 'magento.stock.picking' # should be created, then a job is generated that will export # the picking. Here the job is not created because we mock # 'with_delay()' - self.picking.do_transfer() - self.assertEquals(self.picking.state, 'done') + self.env['stock.immediate.transfer'].create( + {'pick_ids': [(4, self.picking.id)]}).process() + self.assertEqual(self.picking.state, 'done') picking_binding = self.env['magento.stock.picking'].search( [('odoo_id', '=', self.picking.id), ('backend_id', '=', self.backend.id)], ) - self.assertEquals(1, len(picking_binding)) + self.assertEqual(1, len(picking_binding)) with recorder.use_cassette( 'test_export_picking_partial') as cassette: @@ -150,21 +180,22 @@ def test_export_partial_picking_job(self): ) # Check that we have received and bound the magento ID - self.assertEquals(picking_binding.external_id, '987654321') + self.assertEqual(picking_binding.external_id, '987654321') def test_export_tracking_after_done_trigger(self): """ Trigger export of a tracking number """ - self.picking.force_assign() + self.picking.action_assign() with self.mock_with_delay(): - self.picking.do_transfer() - self.assertEquals(self.picking.state, 'done') + self.env['stock.immediate.transfer'].create( + {'pick_ids': [(4, self.picking.id)]}).process() + self.assertEqual(self.picking.state, 'done') picking_binding = self.env['magento.stock.picking'].search( [('odoo_id', '=', self.picking.id), ('backend_id', '=', self.backend.id)], ) - self.assertEquals(1, len(picking_binding)) + self.assertEqual(1, len(picking_binding)) with self.mock_with_delay() as (delayable_cls, delayable): self.picking.carrier_tracking_ref = 'XYZ' @@ -177,18 +208,19 @@ def test_export_tracking_after_done_trigger(self): def test_export_tracking_after_done_job(self): """ Job export of a tracking number """ - self.picking.force_assign() + self.picking.action_assign() with self.mock_with_delay(): - self.picking.do_transfer() - self.assertEquals(self.picking.state, 'done') + self.env['stock.immediate.transfer'].create( + {'pick_ids': [(4, self.picking.id)]}).process() + self.assertEqual(self.picking.state, 'done') self.picking.carrier_tracking_ref = 'XYZ' picking_binding = self.env['magento.stock.picking'].search( [('odoo_id', '=', self.picking.id), ('backend_id', '=', self.backend.id)], ) - self.assertEquals(1, len(picking_binding)) + self.assertEqual(1, len(picking_binding)) picking_binding.external_id = '100000035' with recorder.use_cassette( diff --git a/connector_magento/tests/test_export_product_stock.py b/connector_magento/tests/test_export_product_stock.py index bca93fec8..bf77ee324 100644 --- a/connector_magento/tests/test_export_product_stock.py +++ b/connector_magento/tests/test_export_product_stock.py @@ -83,8 +83,8 @@ def test_compute_new_qty_different_field(self): 'location_id': self.env.ref('stock.stock_location_stock').id, 'location_dest_id': customer_location.id, }) - outgoing.action_confirm() - outgoing.action_assign() + outgoing._action_confirm() + outgoing._action_assign() # the virtual is now 19, available still 30 self.assertEqual(product.qty_available, 30.0) @@ -145,9 +145,12 @@ def test_export_product_inventory_write(self): self.assertEqual((self.binding_product,), delay_args) self.assertEqual(20, delay_kwargs.get('priority')) - delayable.export_inventory.assert_called_with( - fields=['backorders', 'magento_qty', 'manage_stock'], - ) + cargs, ckwargs = delayable.export_inventory.call_args + self.assertFalse(cargs) + self.assertEqual(set(ckwargs.keys()), set(['fields'])) + self.assertEqual( + set(ckwargs['fields']), set([ + 'manage_stock', 'backorders', 'magento_qty'])) def test_export_product_inventory_write_job(self): with self.mock_with_delay(): diff --git a/connector_magento/tests/test_import_partner.py b/connector_magento/tests/test_import_partner.py index 0fb8c3cf4..a7c30a9cd 100644 --- a/connector_magento/tests/test_import_partner.py +++ b/connector_magento/tests/test_import_partner.py @@ -69,7 +69,7 @@ def test_import_partner_individual_2_addresses(self): ('backend_id', '=', self.backend.id)]) self.assertEqual(len(partner), 1) # Name of the billing address - self.assertEqual(partner.name, u'Tay Ray') + self.assertEqual(partner.name, 'Tay Ray') self.assertEqual(partner.type, 'contact') # billing address merged with the partner, # second address as a contact @@ -158,7 +158,7 @@ def test_import_partner_individual_2_addresses_multi_company(self): ('backend_id', '=', self.backend.id)]) self.assertEqual(len(partner), 1) # Name of the billing address - self.assertEqual(partner.name, u'Tay Ray') + self.assertEqual(partner.name, 'Tay Ray') self.assertEqual(partner.type, 'contact') # billing address merged with the partner, # second address as a contact diff --git a/connector_magento/tests/test_import_product_image.py b/connector_magento/tests/test_import_product_image.py index 1cdef3ad4..7698e2bdf 100644 --- a/connector_magento/tests/test_import_product_image.py +++ b/connector_magento/tests/test_import_product_image.py @@ -2,7 +2,9 @@ # Copyright 2015-2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) -import urllib2 +import urllib.request +import urllib.error +import urllib.parse import mock from base64 import b64encode @@ -27,7 +29,7 @@ "\x00\x00\x00\x19tEXtComment\x00Created with GIMPW\x81" "\x0e\x17\x00\x00\x00\x12IDAT\x08\xd7cd\xf8\xcf\x00\x07L" "\x0c\x0c\xc4p\x002\xd2\x01\x07\xce\xee\xd0\xcf\x00\x00" - "\x00\x00IEND\xaeB`\x82") + "\x00\x00IEND\xaeB`\x82".encode('utf-8')) B64_PNG_IMG_4PX_GREEN = b64encode(PNG_IMG_4PX_GREEN) @@ -120,8 +122,8 @@ def test_image_priority(self): file3 = {'file': 'file3', 'types': ['thumbnail'], 'position': '4'} file4 = {'file': 'file4', 'types': [], 'position': '10'} images = [file2, file1, file4, file3] - self.assertEquals(self.image_importer._sort_images(images), - [file4, file3, file2, file1]) + self.assertEqual(self.image_importer._sort_images(images), + [file4, file3, file2, file1]) def test_import_images_404(self): """ An image responds a 404 error, skip and take the first valid """ @@ -137,10 +139,10 @@ def test_import_images_404(self): ) binding.with_context.return_value = binding_no_export - with mock.patch('urllib2.urlopen') as urlopen: + with mock.patch('urllib.request.urlopen') as urlopen: def image_url_response(url): - if url._Request__original in (url_tee1, url_tee2): - raise urllib2.HTTPError(url, 404, '404', None, None) + if url.full_url in (url_tee1, url_tee2): + raise urllib.error.HTTPError(url, 404, '404', None, None) else: return MockResponseImage(PNG_IMG_4PX_GREEN) urlopen.side_effect = image_url_response @@ -162,16 +164,16 @@ def test_import_images_403(self): '/i/n/ink-eater-krylon-bombear-destroyed-tee-1.jpg') url_tee2 = ('http://localhost:9100/media/catalog/product/' 'i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg') - with mock.patch('urllib2.urlopen') as urlopen: + with mock.patch('urllib.request.urlopen') as urlopen: def image_url_response(url): url = url.get_full_url() if url == url_tee2: - raise urllib2.HTTPError(url, 404, '404', None, None) + raise urllib.error.HTTPError(url, 404, '404', None, None) elif url == url_tee1: - raise urllib2.HTTPError(url, 403, '403', None, None) + raise urllib.error.HTTPError(url, 403, '403', None, None) else: return MockResponseImage(PNG_IMG_4PX_GREEN) urlopen.side_effect = image_url_response - with self.assertRaises(urllib2.HTTPError): + with self.assertRaises(urllib.error.HTTPError): self.image_importer.run(122, binding) diff --git a/connector_magento/tests/test_related_action.py b/connector_magento/tests/test_related_action.py index 0a53bad2b..8189f6742 100644 --- a/connector_magento/tests/test_related_action.py +++ b/connector_magento/tests/test_related_action.py @@ -33,7 +33,7 @@ def test_unwrap_binding(self): 'res_id': product.id, 'res_model': 'product.product', } - self.assertEquals(stored.open_related_action(), expected) + self.assertEqual(stored.open_related_action(), expected) def test_link(self): """ Open a related action opening an url on Magento """ @@ -49,7 +49,7 @@ def test_link(self): 'target': 'new', 'url': url, } - self.assertEquals(stored.open_related_action(), expected) + self.assertEqual(stored.open_related_action(), expected) def test_link_no_location(self): """ Related action opening an url, admin location is not configured """ @@ -59,5 +59,5 @@ def test_link_no_location(self): ) stored = job.db_record() msg = r'No admin URL configured.*' - with self.assertRaisesRegexp(exceptions.UserError, msg): + with self.assertRaisesRegex(exceptions.UserError, msg): stored.open_related_action() diff --git a/connector_magento/tests/test_sale_order.py b/connector_magento/tests/test_sale_order.py index 25453f15e..9c763a385 100644 --- a/connector_magento/tests/test_sale_order.py +++ b/connector_magento/tests/test_sale_order.py @@ -43,8 +43,7 @@ def test_import_sale_order_with_configurable(self): prod2 = self.env['magento.product.product'].search( [('external_id', '=', 302), ('backend_id', '=', self.backend.id)] ) - ship = self.env['product.product'].search([('name', '=', 'ups_GND')]) - + ship = binding.carrier_id.product_id expected = [ ExpectedOrderLine( product_id=prod1.odoo_id, @@ -60,7 +59,7 @@ def test_import_sale_order_with_configurable(self): ), ExpectedOrderLine( product_id=ship, - name='ups_GND', + name='Shipping Costs', price_unit=12.31, product_uom_qty=1., ), @@ -139,7 +138,7 @@ def test_import_sale_order_options(self): backend models (backend, wesite, store and storeview) """ binding = self._import_sale_order(100000201) - self.assertFalse(binding.project_id) + self.assertFalse(binding.analytic_account_id) self.assertFalse(binding.fiscal_position_id) # keep a reference to backend models the website storeview_id = binding.storeview_id @@ -154,8 +153,8 @@ def test_import_sale_order_options(self): self.backend.account_analytic_id = account_analytic_id self.backend.fiscal_position_id = fp1.id binding = self._import_sale_order(100000201) - self.assertEquals(binding.project_id, account_analytic_id) - self.assertEquals(binding.fiscal_position_id, fp1) + self.assertEqual(binding.analytic_account_id, account_analytic_id) + self.assertEqual(binding.fiscal_position_id, fp1) binding.odoo_id.unlink() binding.unlink() # define options at the website level @@ -165,8 +164,8 @@ def test_import_sale_order_options(self): website_id.specific_account_analytic_id = account_analytic_id website_id.specific_fiscal_position_id = fp2.id binding = self._import_sale_order(100000201) - self.assertEquals(binding.project_id, account_analytic_id) - self.assertEquals(binding.fiscal_position_id, fp2) + self.assertEqual(binding.analytic_account_id, account_analytic_id) + self.assertEqual(binding.fiscal_position_id, fp2) binding.odoo_id.unlink() binding.unlink() # define options at the store level @@ -176,8 +175,8 @@ def test_import_sale_order_options(self): store_id.specific_account_analytic_id = account_analytic_id store_id.specific_fiscal_position_id = fp3.id binding = self._import_sale_order(100000201) - self.assertEquals(binding.project_id, account_analytic_id) - self.assertEquals(binding.fiscal_position_id, fp3) + self.assertEqual(binding.analytic_account_id, account_analytic_id) + self.assertEqual(binding.fiscal_position_id, fp3) binding.odoo_id.unlink() binding.unlink() # define options at the storeview level @@ -187,8 +186,8 @@ def test_import_sale_order_options(self): storeview_id.specific_account_analytic_id = account_analytic_id storeview_id.specific_fiscal_position_id = fp4.id binding = self._import_sale_order(100000201) - self.assertEquals(binding.project_id, account_analytic_id) - self.assertEquals(binding.fiscal_position_id, fp4) + self.assertEqual(binding.analytic_account_id, account_analytic_id) + self.assertEqual(binding.fiscal_position_id, fp4) def test_sale_order_cancel_delay_job(self): """ Cancel an order, delay a cancel job """ From 00d1fd2b6a48587d9a6f80c4d314bfeb889f8247 Mon Sep 17 00:00:00 2001 From: sebalix Date: Wed, 17 Apr 2019 17:11:33 +0200 Subject: [PATCH 25/31] [MIG] connector_magento to v11 --- connector_magento/__init__.py | 1 - connector_magento/__manifest__.py | 1 - connector_magento/components/__init__.py | 2 -- .../components/backend_adapter.py | 30 ++++++++++--------- connector_magento/components/binder.py | 1 - connector_magento/components/core.py | 1 - connector_magento/components/deleter.py | 1 - connector_magento/components/exporter.py | 3 +- connector_magento/components/importer.py | 3 +- connector_magento/components/line_builder.py | 1 - connector_magento/components/mapper.py | 1 - connector_magento/doc/conf.py | 2 +- connector_magento/exception.py | 1 - connector_magento/models/__init__.py | 1 - .../models/account_invoice/__init__.py | 1 - .../models/account_invoice/common.py | 4 +-- .../models/account_invoice/exporter.py | 1 - .../models/account_payment_mode/__init__.py | 1 - .../models/account_payment_mode/common.py | 3 +- connector_magento/models/delivery/__init__.py | 1 - connector_magento/models/delivery/common.py | 1 - .../models/magento_backend/__init__.py | 1 - .../models/magento_backend/common.py | 1 - .../models/magento_backend/importer.py | 1 - .../models/magento_binding/__init__.py | 1 - .../models/magento_binding/common.py | 3 +- .../models/magento_store/__init__.py | 1 - .../models/magento_store/common.py | 3 +- .../models/magento_store/importer.py | 3 +- .../models/magento_storeview/__init__.py | 1 - .../models/magento_storeview/common.py | 3 +- .../models/magento_storeview/importer.py | 3 +- .../models/magento_website/__init__.py | 1 - .../models/magento_website/common.py | 3 +- .../models/magento_website/importer.py | 1 - connector_magento/models/partner/__init__.py | 1 - connector_magento/models/partner/common.py | 4 +-- connector_magento/models/partner/importer.py | 3 +- .../models/partner_category/__init__.py | 1 - .../models/partner_category/common.py | 1 - .../models/partner_category/importer.py | 1 - connector_magento/models/product/__init__.py | 1 - connector_magento/models/product/common.py | 26 ++++++++-------- connector_magento/models/product/importer.py | 3 +- .../models/product_category/__init__.py | 1 - .../models/product_category/common.py | 8 ++--- .../models/product_category/importer.py | 3 +- .../models/queue_job/__init__.py | 1 - connector_magento/models/queue_job/common.py | 1 - .../models/sale_order/__init__.py | 1 - connector_magento/models/sale_order/common.py | 15 +++++----- .../models/sale_order/exporter.py | 1 - .../models/sale_order/importer.py | 1 - .../models/stock_picking/__init__.py | 1 - .../models/stock_picking/common.py | 4 +-- .../models/stock_picking/exporter.py | 4 +-- .../models/stock_picking/tracking_exporter.py | 3 +- connector_magento/tests/__init__.py | 2 -- connector_magento/tests/common.py | 4 +-- .../tests/test_concurrent_sync.py | 3 +- .../tests/test_export_invoice.py | 3 +- .../tests/test_export_picking.py | 3 +- .../tests/test_export_product_stock.py | 3 +- .../tests/test_import_metadata.py | 3 +- .../tests/test_import_partner.py | 3 +- .../tests/test_import_partner_category.py | 3 +- .../tests/test_import_product.py | 3 +- .../tests/test_import_product_category.py | 3 +- .../tests/test_import_product_image.py | 11 +++---- .../tests/test_related_action.py | 3 +- connector_magento/tests/test_sale_order.py | 3 +- 71 files changed, 82 insertions(+), 140 deletions(-) diff --git a/connector_magento/__init__.py b/connector_magento/__init__.py index 06312982e..c4b4935ef 100644 --- a/connector_magento/__init__.py +++ b/connector_magento/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/__manifest__.py b/connector_magento/__manifest__.py index 4bd35252d..0b79da9ff 100644 --- a/connector_magento/__manifest__.py +++ b/connector_magento/__manifest__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/components/__init__.py b/connector_magento/components/__init__.py index 04c57ec7f..09cd4d98f 100644 --- a/connector_magento/components/__init__.py +++ b/connector_magento/components/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from . import core from . import backend_adapter from . import binder diff --git a/connector_magento/components/backend_adapter.py b/connector_magento/components/backend_adapter.py index 11479365c..e5dd028bc 100644 --- a/connector_magento/components/backend_adapter.py +++ b/connector_magento/components/backend_adapter.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) @@ -75,9 +74,9 @@ def __enter__(self): # we do nothing, api is lazy return self - def __exit__(self, type, value, traceback): + def __exit__(self, exc_type, exc_value, traceback): if self._api is not None: - self._api.__exit__(type, value, traceback) + self._api.__exit__(exc_type, exc_value, traceback) def call(self, method, arguments): try: @@ -121,6 +120,7 @@ def call(self, method, arguments): class MagentoCRUDAdapter(AbstractComponent): """ External Records Adapter for Magento """ + # pylint: disable=method-required-super _name = 'magento.crud.adapter' _inherit = ['base.backend.adapter', 'base.magento.connector'] @@ -131,7 +131,7 @@ def search(self, filters=None): and returns a list of ids """ raise NotImplementedError - def read(self, id, attributes=None): + def read(self, external_id, attributes=None): """ Returns the information of a record """ raise NotImplementedError @@ -144,11 +144,11 @@ def create(self, data): """ Create a record on the external system """ raise NotImplementedError - def write(self, id, data): + def write(self, external_id, data): """ Update records on the external system """ raise NotImplementedError - def delete(self, id): + def delete(self, external_id): """ Delete a record on the external system """ raise NotImplementedError @@ -165,6 +165,7 @@ def _call(self, method, arguments): class GenericAdapter(AbstractComponent): + # pylint: disable=method-required-super _name = 'magento.adapter' _inherit = 'magento.crud.adapter' @@ -181,12 +182,12 @@ def search(self, filters=None): return self._call('%s.search' % self._magento_model, [filters] if filters else [{}]) - def read(self, id, attributes=None): + def read(self, external_id, attributes=None): """ Returns the information of a record :rtype: dict """ - arguments = [int(id)] + arguments = [int(external_id)] if attributes: # Avoid to pass Null values in attributes. Workaround for # https://bugs.launchpad.net/openerp-connector-magento/+bug/1210775 @@ -209,16 +210,17 @@ def create(self, data): """ Create a record on the external system """ return self._call('%s.create' % self._magento_model, [data]) - def write(self, id, data): + def write(self, external_id, data): """ Update records on the external system """ return self._call('%s.update' % self._magento_model, - [int(id), data]) + [int(external_id), data]) - def delete(self, id): + def delete(self, external_id): """ Delete a record on the external system """ - return self._call('%s.delete' % self._magento_model, [int(id)]) + return self._call('%s.delete' % self._magento_model, + [int(external_id)]) - def admin_url(self, id): + def admin_url(self, external_id): """ Return the URL in the Magento admin for a record """ if self._admin_path is None: raise ValueError('No admin path is defined for this record') @@ -227,7 +229,7 @@ def admin_url(self, id): if not url: raise ValueError('No admin URL configured on the backend.') path = self._admin_path.format(model=self._magento_model, - id=id) + id=external_id) url = url.rstrip('/') path = path.lstrip('/') url = '/'.join((url, path)) diff --git a/connector_magento/components/binder.py b/connector_magento/components/binder.py index 1b7e30ce5..3fd7ac320 100644 --- a/connector_magento/components/binder.py +++ b/connector_magento/components/binder.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/components/core.py b/connector_magento/components/core.py index 9e70fccb6..49cf83719 100644 --- a/connector_magento/components/core.py +++ b/connector_magento/components/core.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/components/deleter.py b/connector_magento/components/deleter.py index cb8a2c9ce..6bceaf014 100644 --- a/connector_magento/components/deleter.py +++ b/connector_magento/components/deleter.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/components/exporter.py b/connector_magento/components/exporter.py index a34549957..87152be41 100644 --- a/connector_magento/components/exporter.py +++ b/connector_magento/components/exporter.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -104,6 +103,7 @@ def run(self, binding, *args, **kwargs): # The commit will also release the lock acquired on the binding # record if not odoo.tools.config['test_enable']: + # pylint: disable=invalid-commit self.env.cr.commit() # noqa self._after_export() @@ -274,6 +274,7 @@ def _export_dependency(self, relation, binding_model, # the same binding. It will be caught and # raise a RetryableJobError. if not odoo.tools.config['test_enable']: + # pylint: disable=invalid-commit self.env.cr.commit() # noqa else: # If magento_bind_ids does not exist we are typically in a diff --git a/connector_magento/components/importer.py b/connector_magento/components/importer.py index a47adac6f..e0ef8cf33 100644 --- a/connector_magento/components/importer.py +++ b/connector_magento/components/importer.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -188,7 +187,7 @@ def run(self, external_id, force=False): except IDMissingInBackend: return _('Record does no longer exist in Magento') - skip = self._must_skip() + skip = self._must_skip() # pylint: disable=assignment-from-none if skip: return skip diff --git a/connector_magento/components/line_builder.py b/connector_magento/components/line_builder.py index 3c2963aeb..b7f422938 100644 --- a/connector_magento/components/line_builder.py +++ b/connector_magento/components/line_builder.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2017 Hibou Corp. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/components/mapper.py b/connector_magento/components/mapper.py index 772b9bbf0..4b387aa95 100644 --- a/connector_magento/components/mapper.py +++ b/connector_magento/components/mapper.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/doc/conf.py b/connector_magento/doc/conf.py index c73c69591..e691c3ae9 100644 --- a/connector_magento/doc/conf.py +++ b/connector_magento/doc/conf.py @@ -58,7 +58,7 @@ def is_installable_module(path): # build from travis repos_home = os.environ['HOME'] deps_path = os.path.join(repos_home, 'dependencies') - odoo_folder = 'odoo-10.0' + odoo_folder = 'odoo-{}'.format(os.environ['VERSION']) odoo_root = os.path.join(repos_home, odoo_folder) build_path = os.environ['TRAVIS_BUILD_DIR'] else: diff --git a/connector_magento/exception.py b/connector_magento/exception.py index 8536acfa5..96f1052e4 100644 --- a/connector_magento/exception.py +++ b/connector_magento/exception.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/models/__init__.py b/connector_magento/models/__init__.py index 64834e7f2..4e1bf7694 100644 --- a/connector_magento/models/__init__.py +++ b/connector_magento/models/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from . import magento_binding # should be loaded first for inheritance from . import account_invoice diff --git a/connector_magento/models/account_invoice/__init__.py b/connector_magento/models/account_invoice/__init__.py index cb97d3d7b..2db3f18cd 100644 --- a/connector_magento/models/account_invoice/__init__.py +++ b/connector_magento/models/account_invoice/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import common from . import exporter diff --git a/connector_magento/models/account_invoice/common.py b/connector_magento/models/account_invoice/common.py index c6b9ceddc..51b9e23f8 100644 --- a/connector_magento/models/account_invoice/common.py +++ b/connector_magento/models/account_invoice/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) @@ -81,6 +80,7 @@ def _call(self, method, arguments): def create(self, order_increment_id, items, comment, email, include_comment): """ Create a record on the external system """ + # pylint: disable=method-required-super return self._call('%s.create' % self._magento_model, [order_increment_id, items, comment, email, include_comment]) diff --git a/connector_magento/models/account_invoice/exporter.py b/connector_magento/models/account_invoice/exporter.py index a161879d7..016315a70 100644 --- a/connector_magento/models/account_invoice/exporter.py +++ b/connector_magento/models/account_invoice/exporter.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/account_payment_mode/__init__.py b/connector_magento/models/account_payment_mode/__init__.py index 54ad006d5..e4193cf05 100644 --- a/connector_magento/models/account_payment_mode/__init__.py +++ b/connector_magento/models/account_payment_mode/__init__.py @@ -1,2 +1 @@ -# -*- coding: utf-8 -*- from . import common diff --git a/connector_magento/models/account_payment_mode/common.py b/connector_magento/models/account_payment_mode/common.py index 046ad2d58..25ecf925a 100644 --- a/connector_magento/models/account_payment_mode/common.py +++ b/connector_magento/models/account_payment_mode/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# © 2013-2017 Guewen Baconnier,Camptocamp SA,Akretion +# © 2013-2019 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/models/delivery/__init__.py b/connector_magento/models/delivery/__init__.py index 54ad006d5..e4193cf05 100644 --- a/connector_magento/models/delivery/__init__.py +++ b/connector_magento/models/delivery/__init__.py @@ -1,2 +1 @@ -# -*- coding: utf-8 -*- from . import common diff --git a/connector_magento/models/delivery/common.py b/connector_magento/models/delivery/common.py index 084fc69e0..37dec82e1 100644 --- a/connector_magento/models/delivery/common.py +++ b/connector_magento/models/delivery/common.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/models/magento_backend/__init__.py b/connector_magento/models/magento_backend/__init__.py index 9d854de96..79ab5dc6b 100644 --- a/connector_magento/models/magento_backend/__init__.py +++ b/connector_magento/models/magento_backend/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import common from . import importer diff --git a/connector_magento/models/magento_backend/common.py b/connector_magento/models/magento_backend/common.py index 0e04cea68..5623c9bbf 100644 --- a/connector_magento/models/magento_backend/common.py +++ b/connector_magento/models/magento_backend/common.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/models/magento_backend/importer.py b/connector_magento/models/magento_backend/importer.py index 36662cc3e..524032caf 100644 --- a/connector_magento/models/magento_backend/importer.py +++ b/connector_magento/models/magento_backend/importer.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/magento_binding/__init__.py b/connector_magento/models/magento_binding/__init__.py index 54ad006d5..e4193cf05 100644 --- a/connector_magento/models/magento_binding/__init__.py +++ b/connector_magento/models/magento_binding/__init__.py @@ -1,2 +1 @@ -# -*- coding: utf-8 -*- from . import common diff --git a/connector_magento/models/magento_binding/common.py b/connector_magento/models/magento_binding/common.py index 14789a5ed..f044f09f2 100644 --- a/connector_magento/models/magento_binding/common.py +++ b/connector_magento/models/magento_binding/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# © 2013-2017 Guewen Baconnier,Camptocamp SA,Akretion +# © 2013-2019 Guewen Baconnier,Camptocamp SA,Akretion # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import api, models, fields diff --git a/connector_magento/models/magento_store/__init__.py b/connector_magento/models/magento_store/__init__.py index 9d854de96..79ab5dc6b 100644 --- a/connector_magento/models/magento_store/__init__.py +++ b/connector_magento/models/magento_store/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import common from . import importer diff --git a/connector_magento/models/magento_store/common.py b/connector_magento/models/magento_store/common.py index 15eb63348..2811042a9 100644 --- a/connector_magento/models/magento_store/common.py +++ b/connector_magento/models/magento_store/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/magento_store/importer.py b/connector_magento/models/magento_store/importer.py index 219502022..d94891bb6 100644 --- a/connector_magento/models/magento_store/importer.py +++ b/connector_magento/models/magento_store/importer.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) from odoo.addons.component.core import Component diff --git a/connector_magento/models/magento_storeview/__init__.py b/connector_magento/models/magento_storeview/__init__.py index 9d854de96..79ab5dc6b 100644 --- a/connector_magento/models/magento_storeview/__init__.py +++ b/connector_magento/models/magento_storeview/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import common from . import importer diff --git a/connector_magento/models/magento_storeview/common.py b/connector_magento/models/magento_storeview/common.py index 4a09d1059..0a46c8ae1 100644 --- a/connector_magento/models/magento_storeview/common.py +++ b/connector_magento/models/magento_storeview/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2103-2017 Camptocamp SA +# Copyright 2103-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/magento_storeview/importer.py b/connector_magento/models/magento_storeview/importer.py index 90cacaa7c..454f70177 100644 --- a/connector_magento/models/magento_storeview/importer.py +++ b/connector_magento/models/magento_storeview/importer.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/magento_website/__init__.py b/connector_magento/models/magento_website/__init__.py index 9d854de96..79ab5dc6b 100644 --- a/connector_magento/models/magento_website/__init__.py +++ b/connector_magento/models/magento_website/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import common from . import importer diff --git a/connector_magento/models/magento_website/common.py b/connector_magento/models/magento_website/common.py index f6167f325..c56d1ef1d 100644 --- a/connector_magento/models/magento_website/common.py +++ b/connector_magento/models/magento_website/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# © 2013-2017 Guewen Baconnier,Camptocamp SA,Akretion +# © 2013-2019 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/models/magento_website/importer.py b/connector_magento/models/magento_website/importer.py index 41b74938f..33faade8d 100644 --- a/connector_magento/models/magento_website/importer.py +++ b/connector_magento/models/magento_website/importer.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/partner/__init__.py b/connector_magento/models/partner/__init__.py index 9d854de96..79ab5dc6b 100644 --- a/connector_magento/models/partner/__init__.py +++ b/connector_magento/models/partner/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import common from . import importer diff --git a/connector_magento/models/partner/common.py b/connector_magento/models/partner/common.py index dd0faec60..2c3fb3dab 100644 --- a/connector_magento/models/partner/common.py +++ b/connector_magento/models/partner/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -207,5 +206,6 @@ def search(self, filters=None): def create(self, customer_id, data): """ Create a record on the external system """ + # pylint: disable=method-required-super return self._call('%s.create' % self._magento_model, [customer_id, data]) diff --git a/connector_magento/models/partner/importer.py b/connector_magento/models/partner/importer.py index 6478a5f3b..8fe633d5a 100644 --- a/connector_magento/models/partner/importer.py +++ b/connector_magento/models/partner/importer.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import logging diff --git a/connector_magento/models/partner_category/__init__.py b/connector_magento/models/partner_category/__init__.py index 9d854de96..79ab5dc6b 100644 --- a/connector_magento/models/partner_category/__init__.py +++ b/connector_magento/models/partner_category/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import common from . import importer diff --git a/connector_magento/models/partner_category/common.py b/connector_magento/models/partner_category/common.py index e5ec74aed..025803ffe 100644 --- a/connector_magento/models/partner_category/common.py +++ b/connector_magento/models/partner_category/common.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/models/partner_category/importer.py b/connector_magento/models/partner_category/importer.py index 8f83addb5..201fad2a9 100644 --- a/connector_magento/models/partner_category/importer.py +++ b/connector_magento/models/partner_category/importer.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2013-2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/product/__init__.py b/connector_magento/models/product/__init__.py index 9d854de96..79ab5dc6b 100644 --- a/connector_magento/models/product/__init__.py +++ b/connector_magento/models/product/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import common from . import importer diff --git a/connector_magento/models/product/common.py b/connector_magento/models/product/common.py index 5b84f1945..598a95f1d 100644 --- a/connector_magento/models/product/common.py +++ b/connector_magento/models/product/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -217,32 +216,35 @@ def search(self, filters=None, from_date=None, to_date=None): in self._call('%s.list' % self._magento_model, [filters] if filters else [{}])] - def read(self, id, storeview_id=None, attributes=None): + def read(self, external_id, storeview_id=None, attributes=None): """ Returns the information of a record :rtype: dict """ + # pylint: disable=method-required-super return self._call('ol_catalog_product.info', - [int(id), storeview_id, attributes, 'id']) + [int(external_id), storeview_id, attributes, 'id']) - def write(self, id, data, storeview_id=None): + def write(self, external_id, data, storeview_id=None): """ Update records on the external system """ + # pylint: disable=method-required-super # XXX actually only ol_catalog_product.update works # the PHP connector maybe breaks the catalog_product.update return self._call('ol_catalog_product.update', - [int(id), data, storeview_id, 'id']) + [int(external_id), data, storeview_id, 'id']) - def get_images(self, id, storeview_id=None): - return self._call('product_media.list', [int(id), storeview_id, 'id']) + def get_images(self, external_id, storeview_id=None): + return self._call('product_media.list', + [int(external_id), storeview_id, 'id']) - def read_image(self, id, image_name, storeview_id=None): + def read_image(self, external_id, image_name, storeview_id=None): return self._call('product_media.info', - [int(id), image_name, storeview_id, 'id']) + [int(external_id), image_name, storeview_id, 'id']) - def update_inventory(self, id, data): + def update_inventory(self, external_id, data): # product_stock.update is too slow return self._call('oerp_cataloginventory_stock_item.update', - [int(id), data]) + [int(external_id), data]) class MagentoBindingProductListener(Component): diff --git a/connector_magento/models/product/importer.py b/connector_magento/models/product/importer.py index 7c4958e91..3a332aa11 100644 --- a/connector_magento/models/product/importer.py +++ b/connector_magento/models/product/importer.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/product_category/__init__.py b/connector_magento/models/product_category/__init__.py index 9d854de96..79ab5dc6b 100644 --- a/connector_magento/models/product_category/__init__.py +++ b/connector_magento/models/product_category/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import common from . import importer diff --git a/connector_magento/models/product_category/common.py b/connector_magento/models/product_category/common.py index dca32eb35..00faf1669 100644 --- a/connector_magento/models/product_category/common.py +++ b/connector_magento/models/product_category/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -86,13 +85,14 @@ def search(self, filters=None, from_date=None, to_date=None): return self._call('oerp_catalog_category.search', [filters] if filters else [{}]) - def read(self, id, storeview_id=None, attributes=None): + def read(self, external_id, storeview_id=None, attributes=None): """ Returns the information of a record :rtype: dict """ + # pylint: disable=method-required-super return self._call('%s.info' % self._magento_model, - [int(id), storeview_id, attributes]) + [int(external_id), storeview_id, attributes]) def tree(self, parent_id=None, storeview_id=None): """ Returns a tree of product categories diff --git a/connector_magento/models/product_category/importer.py b/connector_magento/models/product_category/importer.py index 5d8b2e519..e9416f307 100644 --- a/connector_magento/models/product_category/importer.py +++ b/connector_magento/models/product_category/importer.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/queue_job/__init__.py b/connector_magento/models/queue_job/__init__.py index 54ad006d5..e4193cf05 100644 --- a/connector_magento/models/queue_job/__init__.py +++ b/connector_magento/models/queue_job/__init__.py @@ -1,2 +1 @@ -# -*- coding: utf-8 -*- from . import common diff --git a/connector_magento/models/queue_job/common.py b/connector_magento/models/queue_job/common.py index d2bd0ca99..69cd6ae4c 100644 --- a/connector_magento/models/queue_job/common.py +++ b/connector_magento/models/queue_job/common.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/sale_order/__init__.py b/connector_magento/models/sale_order/__init__.py index fc680c60d..8de7312a2 100644 --- a/connector_magento/models/sale_order/__init__.py +++ b/connector_magento/models/sale_order/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from . import common from . import importer from . import exporter diff --git a/connector_magento/models/sale_order/common.py b/connector_magento/models/sale_order/common.py index c28667071..ed8a50fec 100644 --- a/connector_magento/models/sale_order/common.py +++ b/connector_magento/models/sale_order/common.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013 Guewen Baconnier,Camptocamp SA,Akretion # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -278,18 +277,20 @@ def search(self, filters=None, from_date=None, to_date=None, } return super(SaleOrderAdapter, self).search(arguments) - def read(self, id, attributes=None): + def read(self, external_id, attributes=None): """ Returns the information of a record :rtype: dict """ + # pylint: disable=method-required-super record = self._call('%s.info' % self._magento_model, - [id, attributes]) + [external_id, attributes]) return record - def get_parent(self, id): - return self._call('%s.get_parent' % self._magento_model, [id]) + def get_parent(self, external_id): + return self._call('%s.get_parent' % self._magento_model, + [external_id]) - def add_comment(self, id, status, comment=None, notify=False): + def add_comment(self, external_id, status, comment=None, notify=False): return self._call('%s.addComment' % self._magento_model, - [id, status, comment, notify]) + [external_id, status, comment, notify]) diff --git a/connector_magento/models/sale_order/exporter.py b/connector_magento/models/sale_order/exporter.py index dd35e152d..7551541f0 100644 --- a/connector_magento/models/sale_order/exporter.py +++ b/connector_magento/models/sale_order/exporter.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/sale_order/importer.py b/connector_magento/models/sale_order/importer.py index 43cda9bb2..05e6b5f44 100644 --- a/connector_magento/models/sale_order/importer.py +++ b/connector_magento/models/sale_order/importer.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) diff --git a/connector_magento/models/stock_picking/__init__.py b/connector_magento/models/stock_picking/__init__.py index ab4ab7264..973a28555 100644 --- a/connector_magento/models/stock_picking/__init__.py +++ b/connector_magento/models/stock_picking/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from . import common from . import exporter from . import tracking_exporter diff --git a/connector_magento/models/stock_picking/common.py b/connector_magento/models/stock_picking/common.py index 883d822ce..fe1f615d7 100644 --- a/connector_magento/models/stock_picking/common.py +++ b/connector_magento/models/stock_picking/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -90,6 +89,7 @@ def _call(self, method, arguments): def create(self, order_id, items, comment, email, include_comment): """ Create a record on the external system """ + # pylint: disable=method-required-super return self._call('%s.create' % self._magento_model, [order_id, items, comment, email, include_comment]) diff --git a/connector_magento/models/stock_picking/exporter.py b/connector_magento/models/stock_picking/exporter.py index 6ea3297a6..d6cb8920a 100644 --- a/connector_magento/models/stock_picking/exporter.py +++ b/connector_magento/models/stock_picking/exporter.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import xmlrpc.client @@ -96,4 +95,5 @@ def run(self, binding): self.binder.bind(external_id, binding) # ensure that we store the external ID if not odoo.tools.config['test_enable']: + # pylint: disable=invalid-commit self.env.cr.commit() # noqa diff --git a/connector_magento/models/stock_picking/tracking_exporter.py b/connector_magento/models/stock_picking/tracking_exporter.py index 9b671aec3..3531a6a69 100644 --- a/connector_magento/models/stock_picking/tracking_exporter.py +++ b/connector_magento/models/stock_picking/tracking_exporter.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # © 2016 Sodexis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/connector_magento/tests/__init__.py b/connector_magento/tests/__init__.py index c11ea4c75..d7f2bd957 100644 --- a/connector_magento/tests/__init__.py +++ b/connector_magento/tests/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from . import test_concurrent_sync from . import test_export_invoice from . import test_export_picking diff --git a/connector_magento/tests/common.py b/connector_magento/tests/common.py index 37a050dd5..c03b72813 100644 --- a/connector_magento/tests/common.py +++ b/connector_magento/tests/common.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) # pylint: disable=missing-manifest-dependency @@ -42,6 +41,7 @@ def __init__(self, resp_data, code=200, msg='OK'): self.headers = {'content-type': 'image/jpeg'} def read(self): + # pylint: disable=method-required-super return self.resp_data def getcode(self): diff --git a/connector_magento/tests/test_concurrent_sync.py b/connector_magento/tests/test_concurrent_sync.py index 0c56eb2d2..e0ab074c1 100644 --- a/connector_magento/tests/test_concurrent_sync.py +++ b/connector_magento/tests/test_concurrent_sync.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2015-2017 Camptocamp SA +# Copyright 2015-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import mock diff --git a/connector_magento/tests/test_export_invoice.py b/connector_magento/tests/test_export_invoice.py index c0a8036f8..29d193b13 100644 --- a/connector_magento/tests/test_export_invoice.py +++ b/connector_magento/tests/test_export_invoice.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) from .common import MagentoSyncTestCase, recorder diff --git a/connector_magento/tests/test_export_picking.py b/connector_magento/tests/test_export_picking.py index b35f755bb..5858699cf 100644 --- a/connector_magento/tests/test_export_picking.py +++ b/connector_magento/tests/test_export_picking.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2014-2017 Camptocamp SA +# Copyright 2014-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) from .common import MagentoSyncTestCase, recorder diff --git a/connector_magento/tests/test_export_product_stock.py b/connector_magento/tests/test_export_product_stock.py index bf77ee324..cf2080550 100644 --- a/connector_magento/tests/test_export_product_stock.py +++ b/connector_magento/tests/test_export_product_stock.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2015-2017 Camptocamp SA +# Copyright 2015-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) from .common import MagentoSyncTestCase, recorder diff --git a/connector_magento/tests/test_import_metadata.py b/connector_magento/tests/test_import_metadata.py index 3418818ba..8b4f0340d 100644 --- a/connector_magento/tests/test_import_metadata.py +++ b/connector_magento/tests/test_import_metadata.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) from .common import MagentoTestCase, recorder diff --git a/connector_magento/tests/test_import_partner.py b/connector_magento/tests/test_import_partner.py index a7c30a9cd..9d3590252 100644 --- a/connector_magento/tests/test_import_partner.py +++ b/connector_magento/tests/test_import_partner.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2015-2017 Camptocamp SA +# Copyright 2015-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) from .common import MagentoSyncTestCase, recorder diff --git a/connector_magento/tests/test_import_partner_category.py b/connector_magento/tests/test_import_partner_category.py index 66860a0b6..7876fbc08 100644 --- a/connector_magento/tests/test_import_partner_category.py +++ b/connector_magento/tests/test_import_partner_category.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2015-2017 Camptocamp SA +# Copyright 2015-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) from .common import MagentoSyncTestCase, recorder diff --git a/connector_magento/tests/test_import_product.py b/connector_magento/tests/test_import_product.py index 147f6f6b3..c8353b551 100644 --- a/connector_magento/tests/test_import_product.py +++ b/connector_magento/tests/test_import_product.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) from openerp.addons.connector.exception import InvalidDataError diff --git a/connector_magento/tests/test_import_product_category.py b/connector_magento/tests/test_import_product_category.py index 524604e28..e1d79ad5b 100644 --- a/connector_magento/tests/test_import_product_category.py +++ b/connector_magento/tests/test_import_product_category.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2013-2017 Camptocamp SA +# Copyright 2013-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) from .common import MagentoSyncTestCase, recorder diff --git a/connector_magento/tests/test_import_product_image.py b/connector_magento/tests/test_import_product_image.py index 7698e2bdf..e30f25f5f 100644 --- a/connector_magento/tests/test_import_product_image.py +++ b/connector_magento/tests/test_import_product_image.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2015-2017 Camptocamp SA +# Copyright 2015-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import urllib.request @@ -13,10 +12,8 @@ from odoo.addons.component.tests.common import ( TransactionComponentRegistryCase, ) -from odoo.addons.connector_magento import components -from odoo.addons.connector_magento.models.product.importer import ( - CatalogImageImporter, -) +from .. import components +from ..models.product.importer import CatalogImageImporter from .common import MockResponseImage # simple square of 4 px filled with green in png, used for the product @@ -66,7 +63,7 @@ class StubProductAdapter(Component): _usage = 'backend.adapter' _apply_on = 'magento.product.product' - def get_images(self, id, storeview_id=None): + def get_images(self, external_id, storeview_id=None): return [ {'exclude': '1', 'file': '/i/n/ink-eater-krylon-bombear-destroyed-tee-2.jpg', # noqa diff --git a/connector_magento/tests/test_related_action.py b/connector_magento/tests/test_related_action.py index 8189f6742..768a8b464 100644 --- a/connector_magento/tests/test_related_action.py +++ b/connector_magento/tests/test_related_action.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2014-2017 Camptocamp SA +# Copyright 2014-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) import mock diff --git a/connector_magento/tests/test_sale_order.py b/connector_magento/tests/test_sale_order.py index 9c763a385..c491195a7 100644 --- a/connector_magento/tests/test_sale_order.py +++ b/connector_magento/tests/test_sale_order.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2014-2017 Camptocamp SA +# Copyright 2014-2019 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) from collections import namedtuple From 6097dfb475af3bbc592a9f54a511278f03bc9245 Mon Sep 17 00:00:00 2001 From: sebalix Date: Thu, 18 Apr 2019 14:51:45 +0200 Subject: [PATCH 26/31] [MIG] connector_magento: Migration to 12.0 --- connector_magento/__manifest__.py | 2 +- .../data/connector_magento_data.xml | 2 - connector_magento/doc/api/api_models.rst | 64 +++---- .../models/magento_backend/common.py | 1 + .../models/magento_binding/common.py | 2 +- connector_magento/models/partner/common.py | 2 +- connector_magento/models/product/common.py | 2 +- connector_magento/models/product/importer.py | 14 +- connector_magento/tests/fixtures/cassettes/:w | 163 ------------------ .../tests/test_export_picking.py | 2 +- .../tests/test_export_product_stock.py | 3 +- connector_magento/tests/test_sale_order.py | 6 +- .../views/magento_backend_views.xml | 47 +++-- .../wizards/magento_binding_backend_read.py | 22 ++- .../wizards/magento_binding_backend_read.xml | 9 +- 15 files changed, 103 insertions(+), 238 deletions(-) delete mode 100644 connector_magento/tests/fixtures/cassettes/:w diff --git a/connector_magento/__manifest__.py b/connector_magento/__manifest__.py index 0b79da9ff..d2f66a09d 100644 --- a/connector_magento/__manifest__.py +++ b/connector_magento/__manifest__.py @@ -3,7 +3,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). {'name': 'Magento Connector', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'category': 'Connector', 'depends': ['account', 'base_technical_user', diff --git a/connector_magento/data/connector_magento_data.xml b/connector_magento/data/connector_magento_data.xml index 7ca6461ab..84e5bc5c8 100644 --- a/connector_magento/data/connector_magento_data.xml +++ b/connector_magento/data/connector_magento_data.xml @@ -94,7 +94,6 @@ Resolution: Check your taxes and fiscal positions configuration and correct them if necessary. 30 sale.order - sale if sale.magento_bind_ids and abs(sale.amount_total - sale.magento_bind_ids[0].total_amount) >= 0.01: failed = True @@ -111,7 +110,6 @@ Resolution: Check your taxes and fiscal positions configuration and correct them if necessary. 30 sale.order - sale # By default, a cent of difference for the tax amount is allowed, feel free to customise it in your own module if sale.magento_bind_ids and abs(sale.amount_tax - sale.magento_bind_ids[0].total_amount_tax) > 0.01: failed = True diff --git a/connector_magento/doc/api/api_models.rst b/connector_magento/doc/api/api_models.rst index df274ac15..c4de2d523 100644 --- a/connector_magento/doc/api/api_models.rst +++ b/connector_magento/doc/api/api_models.rst @@ -14,10 +14,10 @@ Magento Backend =============== .. automodule:: odoo.addons.connector_magento.models.magento_backend.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.magento_backend.importer :members: @@ -29,10 +29,10 @@ Magento Website =============== .. automodule:: odoo.addons.connector_magento.models.magento_website.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.magento_website.importer :members: @@ -44,10 +44,10 @@ Magento Store ============= .. automodule:: odoo.addons.connector_magento.models.magento_store.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.magento_store.importer :members: @@ -59,10 +59,10 @@ Magento Storeview ================= .. automodule:: odoo.addons.connector_magento.models.magento_storeview.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.magento_storeview.importer :members: @@ -74,37 +74,37 @@ Magento Binding =============== .. automodule:: odoo.addons.connector_magento.models.magento_binding.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: Queue Job ========= .. automodule:: odoo.addons.connector_magento.models.queue_job.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: Payment Mode ============ .. automodule:: odoo.addons.connector_magento.models.account_payment_mode.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: Delivery Method =============== .. automodule:: odoo.addons.connector_magento.models.delivery.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: ******************* Synchronized Models @@ -114,10 +114,10 @@ Invoice ======= .. automodule:: odoo.addons.connector_magento.models.account_invoice.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.account_invoice.exporter :members: @@ -129,25 +129,25 @@ Partner ======= .. automodule:: odoo.addons.connector_magento.models.partner.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.partner.importer - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: Partner Category ================ .. automodule:: odoo.addons.connector_magento.models.partner_category.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.partner_category.importer :members: @@ -159,10 +159,10 @@ Product ======= .. automodule:: odoo.addons.connector_magento.models.product.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.product.importer :members: @@ -174,10 +174,10 @@ Product Category ================ .. automodule:: odoo.addons.connector_magento.models.product_category.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.product_category.importer :members: @@ -189,10 +189,10 @@ Sales Order =========== .. automodule:: odoo.addons.connector_magento.models.sale_order.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.sale_order.importer :members: @@ -210,10 +210,10 @@ Stock Picking ============= .. automodule:: odoo.addons.connector_magento.models.stock_picking.common - :members: - :undoc-members: :show-inheritance: :private-members: +.. :members: + :undoc-members: .. automodule:: odoo.addons.connector_magento.models.stock_picking.exporter :members: diff --git a/connector_magento/models/magento_backend/common.py b/connector_magento/models/magento_backend/common.py index 5623c9bbf..abf862bca 100644 --- a/connector_magento/models/magento_backend/common.py +++ b/connector_magento/models/magento_backend/common.py @@ -352,6 +352,7 @@ def _scheduler_update_product_stock_qty(self, domain=None): class MagentoConfigSpecializer(models.AbstractModel): _name = 'magento.config.specializer' + _description = 'Magento Configuration Specializer Mixin' specific_account_analytic_id = fields.Many2one( comodel_name='account.analytic.account', diff --git a/connector_magento/models/magento_binding/common.py b/connector_magento/models/magento_binding/common.py index f044f09f2..1265c36a1 100644 --- a/connector_magento/models/magento_binding/common.py +++ b/connector_magento/models/magento_binding/common.py @@ -24,7 +24,7 @@ class MagentoBinding(models.AbstractModel): ondelete='restrict', ) # fields.Char because 0 is a valid Magento ID - external_id = fields.Char(string='ID on Magento') + external_id = fields.Char(string='ID on Magento', oldname='magento_id') _sql_constraints = [ ('magento_uniq', 'unique(backend_id, external_id)', diff --git a/connector_magento/models/partner/common.py b/connector_magento/models/partner/common.py index 2c3fb3dab..eeb3be1e8 100644 --- a/connector_magento/models/partner/common.py +++ b/connector_magento/models/partner/common.py @@ -28,7 +28,7 @@ class ResPartner(models.Model): string="Magento Address Bindings", ) birthday = fields.Date(string='Birthday') - company = fields.Char(string='Company') + company = fields.Char(string='Company name (in Magento)') @api.model def _address_fields(self): diff --git a/connector_magento/models/product/common.py b/connector_magento/models/product/common.py index 598a95f1d..17f91919f 100644 --- a/connector_magento/models/product/common.py +++ b/connector_magento/models/product/common.py @@ -42,7 +42,7 @@ def product_type_get(self): ] odoo_id = fields.Many2one(comodel_name='product.product', - string='Product', + string='Odoo Product', required=True, ondelete='restrict') # XXX website_ids can be computed from categories diff --git a/connector_magento/models/product/importer.py b/connector_magento/models/product/importer.py index 3a332aa11..0121162b6 100644 --- a/connector_magento/models/product/importer.py +++ b/connector_magento/models/product/importer.py @@ -312,10 +312,22 @@ def _validate_data(self, data): self._validate_product_type(data) def _create(self, data): - binding = super(ProductImporter, self)._create(data) + binding = super()._create(data) + if not binding.active: + # Disable reordering rules that has been created automatically + binding.orderpoint_ids.write({'active': False}) self.backend_record.add_checkpoint(binding) return binding + def _update(self, binding, data): + # enable/disable reordering rules before updating the product as Odoo + # do not allow to disable a product while having active reordering + # rules on it + if 'active' in data and not data.get('active'): + binding.mapped('orderpoint_ids').write({'active': False}) + res = super()._update(binding, data) + return res + def _after_import(self, binding): """ Hook called at the end of the import """ translation_importer = self.component( diff --git a/connector_magento/tests/fixtures/cassettes/:w b/connector_magento/tests/fixtures/cassettes/:w deleted file mode 100644 index b49a96821..000000000 --- a/connector_magento/tests/fixtures/cassettes/:w +++ /dev/null @@ -1,163 +0,0 @@ -interactions: -- request: - body: !!python/unicode ' - - - - login - - - - - - odoo - - - - - - odoo42 - - - - - - - - ' - headers: - Accept-Encoding: [gzip] - Content-Length: ['209'] - Content-Type: [text/xml] - User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] - method: POST - uri: http://magento/index.php/api/xmlrpc - response: - body: {string: !!python/unicode ' - - a0310725164df95022657cdd6e5b10fa'} - headers: - cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - connection: [keep-alive] - content-type: [text/xml; charset=UTF-8] - date: ['Fri, 30 Jun 2017 15:25:44 GMT'] - expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - pragma: [no-cache] - server: [nginx/1.10.2] - set-cookie: ['PHPSESSID=9ordge0ntikmt57qicktgaj804; expires=Fri, 30-Jun-2017 - 16:25:44 GMT; path=/; domain=magento; HttpOnly'] - x-powered-by: [PHP/5.3.3] - status: {code: 200, message: OK} -- request: - body: !!python/unicode ' - - - - call - - - - - - a0310725164df95022657cdd6e5b10fa - - - - - - sales_order_shipment.create - - - - - - - - 100000201 - - - - - - Shipping Created - - 1 - - 1 - - - - - - - - - - ' - headers: - Accept-Encoding: [gzip] - Content-Length: ['516'] - Content-Type: [text/xml] - User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] - method: POST - uri: http://magento/index.php/api/xmlrpc - response: - body: {string: !!python/unicode ' - - 987654321'} - headers: - cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - connection: [keep-alive] - content-type: [text/xml; charset=UTF-8] - date: ['Fri, 30 Jun 2017 12:37:31 GMT'] - expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - pragma: [no-cache] - server: [nginx/1.10.2] - set-cookie: ['PHPSESSID=vgs7a70g574dectus2hsjge880; expires=Fri, 30-Jun-2017 - 13:37:31 GMT; path=/; domain=magento; HttpOnly'] - x-powered-by: [PHP/5.3.3] - status: {code: 200, message: OK} -- request: - body: !!python/unicode ' - - - - endSession - - - - - - a0310725164df95022657cdd6e5b10fa - - - - - - - - ' - headers: - Accept-Encoding: [gzip] - Content-Length: ['186'] - Content-Type: [text/xml] - User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)] - method: POST - uri: http://magento/index.php/api/xmlrpc - response: - body: {string: !!python/unicode ' - - 1'} - headers: - cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0'] - connection: [keep-alive] - content-type: [text/xml; charset=UTF-8] - date: ['Fri, 30 Jun 2017 15:25:45 GMT'] - expires: ['Thu, 19 Nov 1981 08:52:00 GMT'] - pragma: [no-cache] - server: [nginx/1.10.2] - set-cookie: ['PHPSESSID=iq06s2uhh8kk4ro1oleem27rn2; expires=Fri, 30-Jun-2017 - 16:25:45 GMT; path=/; domain=magento; HttpOnly'] - x-powered-by: [PHP/5.3.3] - status: {code: 200, message: OK} -version: 1 diff --git a/connector_magento/tests/test_export_picking.py b/connector_magento/tests/test_export_picking.py index 5858699cf..b81294541 100644 --- a/connector_magento/tests/test_export_picking.py +++ b/connector_magento/tests/test_export_picking.py @@ -32,7 +32,7 @@ def setUp(self): self.env.ref('stock.stock_location_stock').id })] }) - inventory.action_done() + inventory.action_validate() self.picking = self.order_binding.picking_ids self.assertEqual(len(self.picking), 1) magento_shop = self.picking.sale_id.magento_bind_ids[0].store_id diff --git a/connector_magento/tests/test_export_product_stock.py b/connector_magento/tests/test_export_product_stock.py index cf2080550..50af3bfa8 100644 --- a/connector_magento/tests/test_export_product_stock.py +++ b/connector_magento/tests/test_export_product_stock.py @@ -54,7 +54,8 @@ def test_compute_new_qty(self): ) def test_compute_new_qty_different_field(self): - stock_field = self.env.ref('stock.field_product_product_qty_available') + stock_field = self.env.ref( + 'stock.field_product_product__qty_available') self.backend.product_stock_field_id = stock_field product = self.binding_product.odoo_id binding = self.binding_product diff --git a/connector_magento/tests/test_sale_order.py b/connector_magento/tests/test_sale_order.py index c491195a7..6326f67e8 100644 --- a/connector_magento/tests/test_sale_order.py +++ b/connector_magento/tests/test_sale_order.py @@ -134,11 +134,13 @@ def test_import_sale_order_carrier_product(self): def test_import_sale_order_options(self): """Test import options such as the account_analytic_account and the fiscal_position that can be specified at different level of the - backend models (backend, wesite, store and storeview) + backend models (backend, website, store and storeview) """ binding = self._import_sale_order(100000201) self.assertFalse(binding.analytic_account_id) - self.assertFalse(binding.fiscal_position_id) + default_fp = self.env['account.fiscal.position'].get_fiscal_position( + binding.partner_id.id, binding.partner_shipping_id.id) + self.assertEqual(binding.fiscal_position_id.id, default_fp) # keep a reference to backend models the website storeview_id = binding.storeview_id store_id = storeview_id.store_id diff --git a/connector_magento/views/magento_backend_views.xml b/connector_magento/views/magento_backend_views.xml index 3fcda580d..af20439c5 100644 --- a/connector_magento/views/magento_backend_views.xml +++ b/connector_magento/views/magento_backend_views.xml @@ -65,7 +65,9 @@ in the menu 'Connectors > Checkpoint'.

                                                                                                                  -